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

时间:2014-09-15 07:09:29

标签: javascript underscore.js

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

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

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

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

我正在使用 _。pluck(),但它没有给我我想要的输出。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:5)

以下是您所需要的:

_.flatten(_.values(val))

jsfiddle

答案 1 :(得分:1)

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

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' ]