Lodash _.omit 地图内的函数

Lodash _.omit function inside map

我正在尝试编写一个函数,它将转换对象数组。

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() and _.omit()return一个新的array/object,并且不改变原来的项目。您必须 return 地图的结果,并删除包裹省略号(在箭头函数内)的大括号:

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>

常量数组 = [{ 编号:1, 姓名:'Peter', 年龄:29岁, 城市:'New York' }, { 编号:2, 姓名:'Peter2', 年龄:19岁, 城市:'LA' }, { 编号:3, 姓名:'Peter3', 年龄:89岁, 城市:'Rio' }];

const 结果= array.map(({age, city})=>( {年龄,城市}));

单线解决即可

_.map(array, o => _.omit(o, ['id', 'name']));

_.map(array, o => _.pick(o, ['age', 'city']));