Lodash for省略每个函数

Lodash forEach function omit

本文关键字:函数 for Lodash      更新时间:2023-09-26

我的.js文件(节点)中有一个对象

var z = [
    {'a': 'uno', 'b': 'dos'},
    {'a': 'uno', 'b': 'dos'},
    {'a': 'uno', 'b': 'dos'},
    {'a': 'uno', 'b': 'dos'}
];

我想从z对象中省略每个'a'

我正在尝试这样的东西,但不起作用。

var y = _.forEach(z, function(n){
    //console.log(_.omit(n, 'a'));
    return _.omit(n, 'a');
});
console.log(y);

我尝试过,但没有得到回报,还有其他一些方法,但没有成功

我的jsfiddle链接:http://jsfiddle.net/baumannzone/jzs6n78m/

有什么帮助吗?干杯

通过从每个对象的中省略a来创建一个新的对象数组

console.log(_.map(z, function (obj) {
  return _.omit(obj, 'a');
}));
// [ { b: 'dos' }, { b: 'dos' }, { b: 'dos' }, { b: 'dos' } ]

实际上,您正在省略并创建一个新对象,但_.each会忽略该对象。现在,我们使用_.map,它将收集函数返回的所有值,并形成一个新的数组。

<小时>

如果您喜欢一行,请创建一个分部函数,并只保留要用作_的对象,如以下

console.log(_.map(z, _.partial(_.omit, _, 'a')));
// [ { b: 'dos' }, { b: 'dos' }, { b: 'dos' }, { b: 'dos' } ]
var y = _.map(z, function(n) {
    return _.omit(n, 'a');
});

这将从旧数组创建一个新数组,将z中的对象映射到省略"a"属性的新对象。

另一种选择是使用链接,因此:

var y = _(z).map(function(n){return n.omit('a');}).value();

B