如何从此数组到新数组的特定键值对?

时间:2015-12-03 04:26:35

标签: javascript arrays multidimensional-array key-value

阵列

[{
    "key":"Passed",
    "values":[[date1,time1],[date2,time2]]
},{
    "key":"Failed",
    "values":[[date3,time3],[date4,time4]]
}]

假设我想复制密钥:失败并将值[date3,time3]复制到新数组,我该怎么做?

2 个答案:

答案 0 :(得分:0)

仅使用JavaScript

var newArray = [];

for(var i=0; i<=array.length; i++){
 if (array[i]['key'] === "Failed"){
    newArray.push(array[i]);
  }
}

newArray包含所有失败的项目。

答案 1 :(得分:0)

首先,您需要通过它的键来识别数组中的对象。 让我们假设您的数组存储在名为mylist

的变量中
var error = mylist.find(function(item){ return item.key === 'Failed'; });

现在假设您有一个新数组:

var failed = []; // your new array
failed.push({
    key: error.key,
    values: error.values[0] // assuming you only want the first value
});

虽然可能有更好的应用。如果你能提供更多关于你想要达到的目标的背景信息。

修改

如果您希望从阵列中获取每个失败的结果并将它们分组到一个子集中,您可能希望用户使用reduce方法执行以下操作。

var failed = mylist.reduce(function(mem, item) {
    if(item.key === 'Failed'){
        var transformed = {
            key: error.key,
            values: error.values[0]
        };
        mem.push(transform)
    }
    return mem;
}, []);