Lodash forEach功能省略

jBa*_*ann 5 javascript arrays object lodash

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

var z = [
    {'a': 'uno', 'b': 'dos'},
    {'a': 'uno', 'b': 'dos'},
    {'a': 'uno', 'b': 'dos'},
    {'a': 'uno', 'b': 'dos'}
];
Run Code Online (Sandbox Code Playgroud)

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

我正在尝试这样的事情,但是没有用.

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

console.log(y);
Run Code Online (Sandbox Code Playgroud)

我尝试了没有回头,并且没有多少办法,但没有得到它.

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

有帮助吗?干杯!

the*_*eye 6

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

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

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


如果您更喜欢单行函数,请创建一个部分函数并仅保留要用作 的对象_,如下所示

console.log(_.map(z, _.partial(_.omit, _, 'a')));
// [ { b: 'dos' }, { b: 'dos' }, { b: 'dos' }, { b: 'dos' } ]
Run Code Online (Sandbox Code Playgroud)

  • @JorgeBaumann当你正在做一些有副作用的事情时。 (2认同)