我正在尝试编写一个函数,它将转换对象数组。
var array = [{
id: 1,
name: 'Peter',
age: 29,
city: 'New York'
}, {
id: 2,
name: 'Peter2',
age: 19,
city: 'LA'
}, {
id: 3,
name: 'Peter3',
age: 89,
city: 'Rio'
}];
function mapArray(array) {
_.map(array, object => {
_.omit(object, ['id', 'name']);
});
return array;
}
而且它不起作用。结果我得到了一个包含所有字段的数组。 Lodash 版本是 4.17.4。我也使用nodejs,如果重要的话:D
结果我想得到这样的对象数组:
[{
age: 29,
city: 'New York'
}, {
age: 19,
city: 'LA'
}, {
age: 89,
city: 'Rio'
}];
最佳答案
两者_.map()
和 _.omit()
分别返回一个新的数组/对象,并且不更改原始项目。您必须返回映射的结果,并删除包裹省略的大括号(位于箭头函数内):
var array = [{"id":1,"name":"Peter","age":29,"city":"New York"},{"id":2,"name":"Peter2","age":19,"city":"LA"},{"id":3,"name":"Peter3","age":89,"city":"Rio"}];
function mapArray(array) {
// return from _.map
return _.map(array, object =>
_.omit(object, ['id', 'name']) // return from _.omit
);
}
// assign the results to a new variable
var result = mapArray(array);
console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
关于object - Lodash _.omit 函数在 map 内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50291816/