Bir*_*ird 1 object arrayobject lodash
我正在尝试编写一个函数,该函数将转换对象数组。
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;
}
Run Code Online (Sandbox Code Playgroud)
而且它不起作用。结果,我得到一个包含所有字段的数组。Lodash版本是4.17.4。我也使用nodejs,如果有关系的话:D
结果,我想要获得这样的对象数组:
[{
age: 29,
city: 'New York'
}, {
age: 19,
city: 'LA'
}, {
age: 89,
city: 'Rio'
}];
Run Code Online (Sandbox Code Playgroud)
双方_.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);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)