【问题标题】:How to specific key value pairs from this array to a new array?如何将此数组中的特定键值对指定为新数组?
【发布时间】:2015-12-03 13:59:27
【问题描述】:

数组

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

假设我想将 key:failed 和 values [date3,time3] 复制到一个新数组中,我该怎么做?

【问题讨论】:

  • 欢迎来到堆栈溢出 :)。假设您只想为每个 "Failed" 数组项检索第一个 [date3,time3] 是否正确?

标签: javascript arrays multidimensional-array key-value


【解决方案1】:

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

【讨论】:

  • 不,我只想要同一数组内特定范围之间的日期。我不确定上面的代码是否可以。
  • @ParvathyGeetha 不,但我可以编辑它来这样做。如果您可以在问题中解释这一点,这将很有帮助。您能否提供一个值数组中数据的实际示例。
【解决方案2】:

仅使用 JavaScript

var newArray = [];

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

newArray 包含所有失败的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    • 2018-08-04
    • 1970-01-01
    • 2021-03-26
    相关资源
    最近更新 更多