我有一個數組,其中包含具有鍵值對的兩個對象。我想知道如何檢索數組的值FirstObj
?使用鍵獲取Array對象的值
嘗試這種至今:
var getKeyValue= [];
for(var i=0;i<myChartArray.length;i++)
{
getKeyValue.push(myChartArray[i]["FirstObj"]);
}
我有一個數組,其中包含具有鍵值對的兩個對象。我想知道如何檢索數組的值FirstObj
?使用鍵獲取Array對象的值
嘗試這種至今:
var getKeyValue= [];
for(var i=0;i<myChartArray.length;i++)
{
getKeyValue.push(myChartArray[i]["FirstObj"]);
}
您可以使用Array.prototype.find
:
let firstObj = myChartArray.find(item => item.Key === 'FirstObj');
console.log(firstObj.Value);
請注意,此代碼使用ES6功能。
如果你不想使用ES6,你可以使用Array.prototype.filter()
。
功能會是這個樣子:
var yourValue = yourArray.filter(function(object) {
return object.Key === 'FirstObj';
})[0].Value;
變量yourValue
然後將包含您所尋找的價值。
或者,如果您只是需要解決這種特殊情況,而不是尋找一個迭代的,可擴展的解決方案。您可以靜態選擇對象和值。這假定您可以確定數組中對象的順序。如果上面是真心對你的,你可以這樣做:
var value = youArray[0].Value;
這是一個很好的解決方案,它在大多數情況下都很有意義,但要注意,這將遍歷整個'Array',而不是在找到值之後停止,這可能代價高昂如果'Array'非常長。 –
True @LukaJacobowitz,但在上述具體情況中提供了最乾淨和最短的解決方案。 –
指出使用給定解決方案的注意事項很好:) –
添加到str的答案,這是你會怎麼做沒有ES6:
function getFirstObj(myChartArray){
for(var i=0; i < myChartArray.length; i++){
if (myChartArray[i].Key === 'FirstObj'){
return myChartArray[i]
}
}
}
你可以得到它使用filter()
var array = [];
array.push({Key:"FirstObj", Value:"xyz"});
array.push({Key:"SecondObj", Value:"abc"});
var found = array.filter(function(item) { return item.Key === "FirstObj"; });
console.log(found[0]);
這是一個不錯的解決方案,它在大多數情況下都很有意義,但要注意,這將遍歷整個'Array',而不是在找到值之後停止,如果'Array'非常長,這可能會很昂貴。 –
您可以使用array#find():
var array = [{Key:"FirstObj", Value:"xyz"}, {Key:"SecondObj", Value:"abc"}],
found = array.find(function(elem) {
return elem.Key === "FirstObj";
});
console.log(found);
你可能需要var''之間的空間和'i' –
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/filter – Satpal
您可以添加如何製作'myChartArray'嗎? – moffeltje