我有一个数组,其中包含具有键值对的两个对象。我想知道如何检索数组的值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