2015-12-03 55 views
0

陣列如何將此數組中的特定鍵值對添加到新數組?

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

說我要複製鍵:失敗和值[DATE3,時間3]到一個新的數組,我該怎麼做呢?

+0

歡迎使用堆棧溢出:)。我是否正確地假設你只想爲每個''Failed''數組項目檢索第一個'[date3,time3]'? –

回答

0

只需使用JavaScript的

var newArray = []; 

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

newArray包含了所有的失敗項目。

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; 
}, []); 
+0

不,我只想要在同一個數組內的特定範圍內的日期。我不確定上面的代碼是否會這樣做。 –

+0

@ParvathyGeetha不,但我可以編輯它來這樣做。如果你可以在你的問題中解釋這個,這很有幫助。你能否提供values數組中數據的一個實際例子。 –

相關問題