例如,数组是:
chipsArray = [{'cheetos':'good'},{'dorritos':'better'}]
在这里,chipsArray[0]
会给我{'cheetos':'good'}
。让我们说我填充了这个数组如下:
chipsArray.push({[chips]:quality})
但是现在我试图访问此阵列中每个对象的cheetos
或dorritos
键,我无法做到。做chipsArray[0].chips
给我未定义。
据我所知,在填充具有特定值/变量的对象的键时,它们应该用方括号包裹。但是,当这些对象中的每一个都是像上面给出的例子那样的数组索引时,我们如何从中提取值呢?我尝试使用Object.keys(chipsArray[index])
,但这只给了我关键,而我试图提取该特定键的特定值。
Tl; Dr:当键是这样的字符串时,如何提取数组内对象的键:
chipsArray = [{'cheetos':'good'},{'dorritos':'better'}]
答案 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])