将包含对象的3D数组展平为2D,通过其参数删除重复的对象

西蒙·户田

我有一个内部对象的3D阵列:

[
    [{ id: 1 }, { id: 2 }],
    [{ id: 3 }],
    [{ id: 3 }, { id: 4 }]
]

如何弄平它,包括删除重复的id参数?

[{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }]

我认为下划线会对此有所帮助

苏门

您可以使用Underscore flattenunique来完成此任务。但是,每当您使用多个下划线操作时,都是考虑将下划线链接chain一起使用的好时机value

var data = [
    [{ id: 1 }, { id: 2 }],
    [{ id: 3 }],
    [{ id: 3 }, { id: 4 }]
];

var result = _.chain(data)
                  .flatten()
                  .uniq(function(o) {
                      return o.id;
                   })
                  .value();

console.log('result', result);

JSFiddle:http : //jsfiddle.net/0udLde0s/3/

使用当前的Underscore.js甚至更短

如果您使用的是Underscore.js的最新版本(我现在尝试的当前版本是1.8.3),则可以使用.uniq('id')它,使其更短:

var result = _.chain(data)
                  .flatten()
                  .uniq('id')
                  .value();

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章