繁体   English   中英

Lodash forEach函数省略

[英]Lodash forEach function omit

我的.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();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM