使用Key获取Array对象的值

时间:2016-12-29 11:59:39

标签: javascript arrays

我有一个数组,其中包含两个具有键值对的对象。

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"]);

 }

5 个答案:

答案 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); }

来获取它

&#13;
&#13;
filter()
&#13;
&#13;
&#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);