object - Lodash _.omit 函数在 map 内

标签 object lodash arrayobject

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

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/

相关文章:

php - 使用 PHP 在整个站点中使用一个对象的实例

javascript - 为什么 `lodash.map([' A'], String.prototype.toLowerCase.call)` 不起作用?

javascript - 使用 Lodash 在 Nodejs 中按多个字段进行分组

php - 如何获取数组的对象值

Java - 如何将对象转换为变量?

javascript - 在转换日期时从数组到带有服装键的对象

php - ArrayObject 不允许我在遍历它时取消设置值

javascript - 如何比较对象数组和嵌套对象数组?

java - java中如何从对象引用中获取值

angularjs - Karma 测试 lodash 工厂