我有一個JSON具有以下結構獲取從JSON鍵的值時,如果條件滿足
[
{"key":1,"name":"aaa"},
{"key":2,"name":"bbb"}
]
我需要得到它的關鍵是2的對象,我必須讓它像
單獨的數組 [
{"key":2,"name":"bbb"}
]
例如,我只給出了2個對象,它可以超過100個。有人可以幫助我有效的方式
我有一個JSON具有以下結構獲取從JSON鍵的值時,如果條件滿足
[
{"key":1,"name":"aaa"},
{"key":2,"name":"bbb"}
]
我需要得到它的關鍵是2的對象,我必須讓它像
單獨的數組 [
{"key":2,"name":"bbb"}
]
例如,我只給出了2個對象,它可以超過100個。有人可以幫助我有效的方式
Array#find
可能會有所幫助。
let obj = arr.find(v => v.key == 2);
如果你想將其存儲在陣列內:
let obj = [arr.find(v => v.key == 2)];
或者一個循環的方法(當條件滿足 - 打破循環):
let arr = [{
"key": 1,
"name": "aaa"
},
{
"key": 2,
"name": "bbb"
}
];
let res = [];
for (let elem of arr) {
if (elem.key == 2) {
res.push(elem);
break;
}
}
console.log(res);
使用filter
來實現這一點:
var result = data.filter(function(val){
return val.key==2;
});
我希望有所幫助:)
感謝您的快速響應。這個方法比array.find()更有效率。我的意思是當我們有超過100個物體時哪個更好 – Karthi
我不知道這個是否有任何缺陷! 'filter'運行直到數組的末尾,並調用每個項目的回調函數;與找到之後停止的'find'相反。當回調在其中一個附加迭代元素上引發異常時,結果會有所不同。 –
'.filter()'如果你有'key'屬性爲'1'的多個對象,並且你想得到所有的t但是,如果你想獲得主題對象的第一次出現,請使用'.find()'。 – Redu