我有一个数组,其中包含两个具有键值对的对象。
Object 1 : Key: "FirstObj" Value: "xyz"
Object 2 : Key: "SecondObj" Value: "abc"
我想知道如何使用Key FirstObj
检索数组的值?
到目前为止试过这个:
var getKeyValue= [];
for(var i=0;i<myChartArray.length;i++)
{
getKeyValue.push(myChartArray[i]["FirstObj"]);
}
答案 0 :(得分:2)
您可以使用Array.prototype.find
:
let firstObj = myChartArray.find(item => item.Key === 'FirstObj');
console.log(firstObj.Value);
请注意,此代码使用ES6功能。
答案 1 :(得分:1)
添加到str的答案,这就是你如何在没有ES6的情况下做到这一点:
function getFirstObj(myChartArray){
for(var i=0; i < myChartArray.length; i++){
if (myChartArray[i].Key === 'FirstObj'){
return myChartArray[i]
}
}
}
答案 2 :(得分:0)
如果您不想使用ES6,可以使用Array.prototype.filter()
。
该功能看起来像这样:
var yourValue = yourArray.filter(function(object) {
return object.Key === 'FirstObj';
})[0].Value;
变量yourValue
将包含您要查找的值。
或者,如果您只需要解决此特定情况,并且您不需要寻找迭代,可扩展的解决方案。您可以静态选择对象和值。这假设您可以确定数组中对象的顺序。如果以上情况适合您,您可以这样做:
var value = youArray[0].Value;
答案 3 :(得分:0)
您可以使用#include "stdlib.h"
int main()
{
char *lin = malloc(3 * sizeof(char));
lin[0] = 'a';
lin[1] = 'b';
lin[2] = '\0';
char *line = malloc(3 * sizeof(char));
line[0] = 'z';
line[1] = 'b';
line[2] = '\0';
printf("lin = %s\nline = %s\n", lin, line);
get_next_line(fd, line);
return (0);
}
filter()
&#13;
答案 4 :(得分:0)
您可以使用array#find():
var array = [{Key:"FirstObj", Value:"xyz"}, {Key:"SecondObj", Value:"abc"}],
found = array.find(function(elem) {
return elem.Key === "FirstObj";
});
console.log(found);