2017-03-06 81 views
0

例如,数组是:如何访问对象的JavaScript数组中的字符串键?

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

这里,chipsArray[0]会给我{'cheetos':'good'}。比方说,我填充此数组像下面这样:

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

但现在,我想访问cheetosdorritos键中的每个对象的本阵,我不能。做chipsArray[0].chips给我未定义。

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

铊;博士:如何提取对象的关键内部数组时,关键是这样的字符串:

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

回答

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

+0

感谢您的建议,但我在我的问题,我试图这样提到。我不想只有钥匙/钥匙。我需要某个我需要访问的密钥的值。例如:我想通过关键''''dorritos''''来获得值''''''''''。我无法访问它,如果我做一个'''Object.keys''' – BobSilas

+0

@BobSilas我认为这个答案默默地意味着,当你有关键的时候,很容易获得值(只需访问数组与您的retreived密钥) – Kaddath

0

使用下面的函数的对象。

Object.values(chipsArray[i]) 

其中i为数组的索引:它通过keyarray

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

更多Array.prototype.somehere

0

我认为最简单的方法是访问值返回value

输出:

> chipsArray = [{'cheetos':'good'},{'dorritos':'better'}] 
[ { cheetos: 'good' }, { dorritos: 'better' } ] 
> Object.values(chipsArray[0]) 
[ 'good' ] 
+0

这不起作用的某种原因。 Object.keys工作得很好,但Object.values抛出错误。 – BobSilas

+0

它应该。我也包括输出。 –

相关问题