如何将特定的键值对从这个数组转移到一个新数组?

How to specific key value pairs from this array to a new array?

数组

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

假设我想将 key:failed 和值 [date 3,time 3] 复制到一个新数组,我该怎么做?

仅使用 JavaScript

var newArray = [];

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

newArray 包含所有失败的项目。

首先,您需要通过键来识别数组中的对象。 假设您的数组存储在一个名为 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;
}, []);