객체 키 배열 가져 오기
jQuery 또는 순수 JavaScript에서 JavaScript 객체의 키를 배열로 가져 오려고합니다.
이것보다 덜 장황한 방법이 있습니까?
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
사용 Object.keys
:
var foo = {
'alpha': 'puffin',
'beta': 'beagle'
};
var keys = Object.keys(foo);
console.log(keys) // ['alpha', 'beta']
// (or maybe some other order, keys are unordered).
이것은 ES5 기능입니다. 이는 모든 최신 브라우저에서 작동하지만 레거시 브라우저에서는 작동하지 않음을 의미 합니다 .
ES5- 심은 훔칠 수 있는 구현을 가지고 있습니다Object.keys
jQuery를 사용할 수 있습니다 $.map
.
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' },
keys = $.map(foo, function(v, i){
return i;
});
물론, Object.keys()
은 IS 최고의 개체의 키를 얻을 수있는 방법입니다. 환경에서 사용할 수없는 경우 예제와 같은 코드를 사용하여 사소하게 shim 할 수 있습니다 (단, Object.keys()
동작을 달리하여 루프가 프로토 타입 체인의 모든 속성을 반복해야한다는 점을 제외하면 ).
그러나 예제 코드는 ...
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
for (var key in foo) {
keys.push(key);
}
jsFiddle .
... 수정 될 수 있습니다. 변수 부분 에서 바로 할당을 수행 할 수 있습니다 .
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [], i = 0;
for (keys[i++] in foo) {}
jsFiddle .
물론이 동작은 Object.keys()
실제로 하는 것과 다릅니다 ( jsFiddle ). MDN 문서에서 간단히 shim을 사용할 수 있습니다 .
나는 덜 장황한 것은 알지 못하지만 한 줄짜리 요청으로 다음 줄을 한 줄로 강요하도록 영감을 얻었습니다. 파이썬이 얼마나되는지 알지 못합니다.)
var keys = (function(o){var ks=[]; for(var k in o) ks.push(k); return ks})(foo);
n- 깊이 중첩 된 객체의 키를 평면 배열로 나열 할 무언가를 찾고있는 경우 :
const getObjectKeys = (obj, prefix = '') => {
return Object.entries(obj).reduce((collector, [key, val]) => {
const newKeys = [ ...collector, prefix ? `${prefix}.${key}` : key ]
if (Object.prototype.toString.call(val) === '[object Object]') {
const newPrefix = prefix ? `${prefix}.${key}` : key
const otherKeys = getObjectKeys(val, newPrefix)
return [ ...newKeys, ...otherKeys ]
}
return newKeys
}, [])
}
console.log(getObjectKeys({a: 1, b: 2, c: { d: 3, e: { f: 4 }}}))
요약
Object의 모든 키를 얻기 위해 사용할 수 있습니다 Object.keys()
. Object.keys()
객체를 인수로 사용하고 모든 키의 배열을 반환합니다.
예:
const object = {
a: 'string1',
b: 42,
c: 34
};
const keys = Object.keys(object)
console.log(keys);
console.log(keys.length) // we can easily access the total amount of properties the object has
위의 예제에서 우리는 키 배열에 키 배열을 저장합니다. 그런 다음 키 배열의 길이를 확인하여 객체의 속성 양에 쉽게 액세스 할 수 있습니다.
다음을 사용하여 값 가져 오기 : Object.values()
의 보완 함수는 Object.keys()
입니다 Object.values()
. 이 함수는 객체를 인수로 받아서 값의 배열을 반환합니다. 예를 들면 다음과 같습니다.
const object = {
a: 'random',
b: 22,
c: true
};
console.log(Object.values(object));
Underscore.js를 사용하기로 결정한 경우 더 잘 수행하십시오.
var foo = { 'alpha' : 'puffin', 'beta' : 'beagle' };
var keys = [];
_.each( foo, function( val, key ) {
keys.push(key);
});
console.log(keys);
Javascript Object keys () 메소드를 사용할 수 있습니다.
Javascript Object.keys () 메소드는 표준 루프와 동일한 순서로 주어진 객체의 속성 이름 배열 을 반환합니다 .
Object.keys () 메소드는 요소가 열거 가능한 특성에 대응하는 캐릭터 오브젝트에 직접있는 배열을 리턴하기 위해 사용된다.
속성의 순서는 루프에서 수동으로 객체에 의해 주어진 것과 동일하며 속성에 적용됩니다.
참고 URL : https://stackoverflow.com/questions/8763125/get-array-of-objects-keys
'Programming' 카테고리의 다른 글
두 div를 서로 옆에 배치하는 방법은 무엇입니까? (0) | 2020.03.05 |
---|---|
파이썬 / 팬더가 저장된 CSV에서 인덱스를 생성하지 않도록하는 방법은 무엇입니까? (0) | 2020.03.05 |
루비에서 객체의 유형 결정 (0) | 2020.03.05 |
gcc의 C / C ++ 소스에서 어셈블러 출력을 어떻게 얻습니까? (0) | 2020.03.05 |
Java 스트림과 정수 목록을 합산하는 방법은 무엇입니까? (0) | 2020.03.05 |