답변:
모든 키를 얻으려면 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
유일한 솔루션입니다.
p
열쇠를 주지만 열쇠의 가치는 어떻게 얻습니까? 감사.
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
});
foo[i]
로 "_proto_"
?
foo[i]
경우가 i
있다 some string
?
가장 간단하고 쉬운 방법입니다. 이것이 우리가 이것을하는 방법입니다.
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(obj) // ['bar']
이제 객체를 반복하고 아래와 같은 값에 액세스 할 수 있습니다.
Object.keys(obj).forEach( function(key) {
console.log(obj[key]) // baz
})
TypeError
키가 숫자가 될 것으로 예상되면 얻을 수 있습니다 . 키는 항상 문자열이기 때문에.
나는 같은 문제가 있었고 이것이 효과가 있었다.
//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;
var value = person[key];
? 그렇게하면 끌어 내고자하는 가치의 열쇠를 알 필요가 없습니다.
Object.keys () Object.keys () 메소드는 for ... in 루프에서 제공 한 것과 동일한 순서로 주어진 객체의 자체 열거 가능 속성의 배열을 반환합니다 (차이 for 루프는 속성을 열거한다는 점). 프로토 타입 체인에서도).
var arr1 = Object.keys(obj);
Object.values () Object.values () 메소드는 for ... in 루프에서 제공 한 것과 동일한 순서로 주어진 객체의 자체 열거 가능 속성 값의 배열을 반환합니다 (차이는 for-in 루프가 열거한다는 점). 프로토 타입 체인의 속성).
var arr2 = Object.values(obj);
자바 스크립트에서 객체 또는 맵의 키에 액세스하기 위해 각 루프에 사용
for(key in foo){
console.log(key);//for key name in your case it will be bar
console.log(foo[key]);// for key value in your case it will be baz
}
참고 : 사용할 수도 있습니다
Object.keys (foo);
다음과 같이 출력됩니다.
[바];
그럼 $.each
라이브러리 구조는 반면, 인 for ... in
더해야 기본 JS이다
Object.keys 기능을 사용하여 다음과 같은 키를 얻을 수 있습니다.
const tempObjects={foo:"bar"}
Object.keys(tempObjects).forEach(obj=>{
console.log("Key->"+obj+ "value->"+tempObjects[obj]);
});