Szy*_*oda 5 javascript arrays multidimensional-array underscore.js
我有一个里面有对象的3D数组:
[
[{ id: 1 }, { id: 2 }],
[{ id: 3 }],
[{ id: 3 }, { id: 4 }]
]
Run Code Online (Sandbox Code Playgroud)
如何压扁它包括删除重复的id参数?
[{ id: 1 }, { id: 2 }, { id: 3 }, { id: 4 }]
Run Code Online (Sandbox Code Playgroud)
我认为下划线会对此有所帮助
您可以使用 Underscore flatten和unique来完成此操作。但是,每当您使用多个下划线操作时,最好考虑使用与和的下划线链接:chainvalue
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);
Run Code Online (Sandbox Code Playgroud)
JSFiddle: http: //jsfiddle.net/0udLde0s/3/
使用当前的 Underscore.js 甚至更短
如果您使用最新版本的 Underscore.js(我现在尝试的是 1.8.3),您可以使用它,.uniq('id')这样它会更短:
var result = _.chain(data)
.flatten()
.uniq('id')
.value();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
93 次 |
| 最近记录: |