[英]convert multiple arrays objects to single array, underscore
I have an array which contain multiple objects, like 我有一个包含多个对象的数组,例如
var val = [
_id: ["5412fc1bd123cf7016674a92", "5412cf270e9ca9b517b43ca3"],
_id: ["5412cf5a6cc4f4bc151fd220"]
];
I want to change to single array, like: 我想更改为单个数组,例如:
var val = [
"5412fc1bd123cf7016674a92",
"5412cf270e9ca9b517b43ca3",
"5412cf5a6cc4f4bc151fd220"
];
I'm using _.pluck() but its not giving me the output which I want. 我正在使用_.pluck(),但没有给我想要的输出。 How can I achieve this? 我该如何实现?
Update: This is 2019 and Array.flat
is native. 更新:这是2019年, Array.flat
是本机的。
const val = { _id: ["5412fc1bd123cf7016674a92", "5412cf270e9ca9b517b43ca3"], _id2: ["5412cf5a6cc4f4bc151fd220"] } console.log( Object.values(val).flat() ) // Without flat console.log( Array.prototype.concat.apply( [], Object.values(val) ) ) // Without Object.values console.log( Array.prototype.concat.apply( [], Object.keys(val).map(k => val[k]) ) )
The following is all you need with lodash: 以下是lodash所需的全部:
_.flatten(_.values(val))
Assuming your input data is an object containing several arrays, like so: 假设输入数据是一个包含多个数组的对象,如下所示:
var val = {
_id: ["5412fc1bd123cf7016674a92", "5412cf270e9ca9b517b43ca3"],
_id2: ["5412cf5a6cc4f4bc151fd220"]
};
You can get the desired array structure pretty easily using concat : 您可以使用concat轻松获得所需的数组结构:
var flat = [];
for (var key in val) {
flat = flat.concat(val[key]);
}
console.log(flat);
Output: 输出:
[ '5412fc1bd123cf7016674a92',
'5412cf270e9ca9b517b43ca3',
'5412cf5a6cc4f4bc151fd220' ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.