如何访问javascript对象数组中的String键?

时间:2017-03-06 11:53:50

标签: javascript json object key

例如,数组是:

chipsArray = [{'cheetos':'good'},{'dorritos':'better'}]

在这里,chipsArray[0]会给我{'cheetos':'good'}。让我们说我填充了这个数组如下:

chipsArray.push({[chips]:quality}) 

但是现在我试图访问此阵列中每个对象的cheetosdorritos键,我无法做到。做chipsArray[0].chips给我未定义。

据我所知,在填充具有特定值/变量的对象的键时,它们应该用方括号包裹。但是,当这些对象中的每一个都是像上面给出的例子那样的数组索引时,我们如何从中提取值呢?我尝试使用Object.keys(chipsArray[index]),但这只给了我关键,而我试图提取该特定键的特定值。

Tl; Dr:当键是这样的字符串时,如何提取数组内对象的键:

chipsArray = [{'cheetos':'good'},{'dorritos':'better'}]

3 个答案:

答案 0 :(得分:1)

您可以使用Object.keys并仅获取第一个元素。



var chipsArray = [{ cheetos: 'good' }, { dorritos: 'better' }];

chipsArray.forEach(function (object) {
    var key = Object.keys(object)[0];
    console.log(key, object[key]);
});




或者使用对单个对象的引用创建对象



var chipsArray = [{ cheetos: 'good' }, { dorritos: 'better' }],
    hash = Object.create(null);

chipsArray.forEach(function (object) {
    hash[Object.keys(object)[0]] = object;
});

console.log(hash['dorritos']['dorritos']);




答案 1 :(得分:0)

使用以下功能。它会在value

中返回key array
function getItemByKey (key, array) {
    var value;
    array.some(function (obj) {
        if (obj[key]) {
            value = obj[key];
            return true;
        }
        return false;
    });
    return value;
}

有关Array.prototype.some here

的更多信息

答案 2 :(得分:0)

我认为最简单的方法是访问该值:

select SOURCE_ID,
        LINK_TYPE,
        DESTINATION_ID 
from LINK_TABLE
where link_table.link_type=1 
and link_table.destination_is_deleted=0
START WITH link_table.source_id='100'
CONNECT BY PRIOR link_table.destination_id = link_table.source_id
/

其中i是数组的索引。

输出:

Object.values(chipsArray[i])