다음과 같은 JS 객체가있는 경우 :
var foo = { 'bar' : 'baz' }
나는 그것이 알고 있다면 foo
그 기본 키 / 값 구조를 가지고 있지만 키의 이름을 모르는 그것을 얻을 수있는 가장 쉬운 방법은 무엇입니까? for ... in
? $.each()
? 더 좋은 것이 있기를 바랍니다 ….
답변
모든 키를 얻으려면 ECMAScript 5가 도입되었습니다Object.keys
. 이것은 최신 브라우저에서만 지원되지만 MDC 설명서 는 대체 구현 ( for...in
btw 도 사용 )을 제공합니다.
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;