繁体   English   中英

将多个数组对象转换为单个数组,下划线

[英]convert multiple arrays objects to single array, underscore

我有一个包含多个对象的数组,例如

var val = [
    _id: ["5412fc1bd123cf7016674a92", "5412cf270e9ca9b517b43ca3"],
    _id: ["5412cf5a6cc4f4bc151fd220"]
];

我想更改为单个数组,例如:

var val = [
    "5412fc1bd123cf7016674a92", 
    "5412cf270e9ca9b517b43ca3", 
    "5412cf5a6cc4f4bc151fd220"
];

我正在使用_.pluck(),但没有给我想要的输出。 我该如何实现?

更新:这是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]) ) ) 

以下是lodash所需的全部:

_.flatten(_.values(val))

假设输入数据是一个包含多个数组的对象,如下所示:

var val = {
    _id: ["5412fc1bd123cf7016674a92", "5412cf270e9ca9b517b43ca3"],
    _id2: ["5412cf5a6cc4f4bc151fd220"]
};

您可以使用concat轻松获得所需的数组结构:

var flat = [];
for (var key in val) {
    flat = flat.concat(val[key]);
}
console.log(flat);

输出:

[ '5412fc1bd123cf7016674a92',
  '5412cf270e9ca9b517b43ca3',
  '5412cf5a6cc4f4bc151fd220' ]

暂无
暂无

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

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