[javascript] 키 / 값 자바 스크립트 객체의 키를 얻는 가장 좋은 방법

다음과 같은 JS 객체가있는 경우 :

var foo = { 'bar' : 'baz' }

나는 그것이 알고 있다면 foo그 기본 키 / 값 구조를 가지고 있지만 키의 이름을 모르는 그것을 얻을 수있는 가장 쉬운 방법은 무엇입니까? for ... in? $.each()? 더 좋은 것이 있기를 바랍니다 ….



답변

모든 키를 얻으려면 ECMAScript 5가 도입되었습니다Object.keys . 이것은 최신 브라우저에서만 지원되지만 MDC 설명서 는 대체 구현 ( for...inbtw 도 사용 )을 제공합니다.

if(!Object.keys) Object.keys = function(o){
     if (o !== Object(o))
          throw new TypeError('Object.keys called on non-object');
     var ret=[],p;
     for(p in o) if(Object.prototype.hasOwnProperty.call(o,p)) ret.push(p);
     return ret;
}

물론 키와 가치를 모두 원한다면 for...in유일한 솔루션입니다.


답변

for 루프를 사용하여 객체 내부를 반복합니다.

for(var i in foo){
  alert(i); // alerts key
  alert(foo[i]); //alerts key's value
}

또는

Object.keys(foo)
  .forEach(function eachKey(key) { 
    alert(key); // alerts key 
    alert(foo[key]); // alerts value
  });


답변

다음과 같이 반복하지 않고 각 키에 개별적으로 액세스 할 수 있습니다.

var obj = { first: 'someVal', second: 'otherVal' };
alert(Object.keys(obj)[0]); // returns first
alert(Object.keys(obj)[1]); // returns second


답변

주어진 객체 :

var foo = { 'bar' : 'baz' }

를 얻으려면 다음 bar을 사용하십시오.

Object.keys(foo)[0]

를 얻으려면 다음 baz을 사용하십시오.

foo[Object.keys(foo)[0]]

단일 객체 가정


답변

하나 라이너 당신을 위해 :

const OBJECT = {
    'key1': 'value1',
    'key2': 'value2',
    'key3': 'value3',
    'key4': 'value4'
};

const value = 'value2';

const key = Object.keys(OBJECT)[Object.values(OBJECT).indexOf(value)];

window.console.log(key); // = key2


답변

가장 간단하고 쉬운 방법입니다. 이것이 우리가 이것을하는 방법입니다.

var obj = { 'bar' : 'baz' }
var key = Object.keys(obj)[0];
var value = obj[key];

 console.log("key = ", key) // bar
 console.log("value = ", value) // baz

Object.keys ()는 객체를 사용할 때 키 배열을 반환하는 자바 스크립트 메서드입니다.

Object.keys(obj) // ['bar']

이제 객체를 반복하고 아래와 같은 값에 액세스 할 수 있습니다.

Object.keys(obj).forEach( function(key) {
  console.log(obj[key]) // baz
})


답변

나는 같은 문제가 있었고 이것이 효과가 있었다.

//example of an Object
var person = {
    firstName:"John",
    lastName:"Doe",
    age:50,
    eyeColor:"blue"
};

//How to access a single key or value
var key = Object.keys(person)[0];
var value = person.firstName;