2017-03-06 1 views
0

예를 들어, 배열은 다음과 같습니다개체의 자바 스크립트 배열에서 String 키에 액세스하는 방법?

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

, chipsArray[0] 나에게 {'cheetos':'good'}을 줄 것입니다. 난 못해,

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

을하지만 지금은이 배열에서 각 개체에 cheetos 또는 dorritos 키에 액세스하는 것을 시도하고 있다는 :의 나는 다음과 같은이 배열을 채워 가정 해 봅시다. chipsArray[0].chips을하면 나를 정의하지 못하게합니다.

개체의 키를 특정 값/변수로 채울 때까지는 대괄호로 묶어야합니다. 그러나 어떻게 이들 객체 각각이 위에 주어진 예제와 같은 배열 색인 일 때 나중에 값을 추출 할 수 있습니까? 나는 Object.keys(chipsArray[index])을 사용해 보았습니다. 그러나 이것은 특정 키에 대한 특정 값을 추출하는 반면, 이것은 오직 나에게 키를 제공합니다.

T1 내지; 박사 : 키가 같은 문자열 때 배열 내에서 객체의 키를 추출하는 방법 :

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]); 
 
});
단일 객체

+0

감사하지만 난이 방법을 시도 내 질문에 언급했다. 나는 열쇠/열쇠 만 원하지 않는다. 내가 액세스해야하는 특정 키 값을 원합니다. 예를 들어, "'''dorritos'''' 키를 전달하여''''더 나은''''값을 얻고 싶습니다. – BobSilas

+0

@BobSilas 나는이 대답이 자동으로 키가 돌아 왔을 때 값을 얻는 것이 쉽다는 것을 암시한다고 생각한다. (단지 배열에 대한 액세스 만 가능하다. 당신의 retreived 키) – Kaddath

0

사용

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']);
다음 함수

에 대한 참조를 가진 객체입니다.

Object.values(chipsArray[i]) 

내가 배열의 인덱스입니다 : 내가 가장 쉬운 방법은 값에 액세스하는 것입니다 생각 array

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

here

0

Array.prototype.some에 대해에 key하여 value를 반환 .

출력 : 귀하의 제안에 대한

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

이것은 어떤 이유로 작동하지 않습니다. Object.keys 잘 작동하지만 Object.values ​​오류가 throw됩니다. – BobSilas

+0

그래야합니다. 출력도 포함 시켰습니다. –

관련 문제