스택큐힙리스트
자바스크립트 오브젝트의 길이 본문
저는 JavaScript 객체가 있습니다. 이 객체의 길이를 가져오기 위한 내장 또는 인정된 최선의 방법이 있습니까?
const myObject = new Object();
myObject[firstname] = Gareth;
myObject[lastname] = Simpson;
myObject[age] = 21;
답변 1
업데이트된 답변
2016년 이후 및 widespread deployment of ES5 이상의 업데이트입니다. IE9+ 및 모든 현대 ES5+ 호환 브라우저에서는 Object.keys()을 사용할 수 있으므로 위의 코드는 다음과 같이 됩니다:
var size = Object.keys(myObj).length;
이것은 # $### $ # ^ $ & 가 내장되어 있기 때문에 기존 프로토 타입을 수정할 필요가 없습니다.
편집: 객체에는 Object.key 메소드를 통해서 반환할 수 없는 상징적인 속성들이 있을 수 있습니다. 그러므로, 해당 속성을 언급하지 않고는 답변이 불완전할 것입니다.
객체 속성의 고유 식별자를 만들기 위해 언어에 심볼 타입이 추가되었습니다. 심볼 타입의 주요 이점은 덮어쓰기를 방지하는 것입니다.
Object.keys 또는 Object.getOwnPropertyNames는 기호적 속성에 대해 작동하지 않습니다. 그들을 반환하려면 Object.getOwnPropertySymbols를 사용해야합니다.
var person = {
[Symbol('name')]: 'John Doe',
[Symbol('age')]: 33,
occupation: Programmer
};
const propOwn = Object.getOwnPropertyNames(person);
console.log(propOwn.length); // 1
let propSymb = Object.getOwnPropertySymbols(person);
console.log(propSymb.length); // 2
이전 대답: 번역하세요.
가장 견고한 대답은 (즉, 최소한의 버그를 일으키면서 당신이 하려는 바의 의도를 가장 잘 포착하는 것) 다음과 같을 것입니다 :
Object.size = function(obj) {
var size = 0,
key;
for (key in obj) {
if (obj.hasOwnProperty(key)) size++;
}
return size;
};
// Get the size of an object
const myObj = {}
var size = Object.size(myObj);
자바스크립트에서는 어떤 라이브러리들의 열거작업을 망가뜨릴 수 있는 이유로, 보통는 객체에 메소드를 추가하는 것이 안전합니다. don't add things to Object.prototype
답변 2
자바스크립트 객체의 길이에 대해 알아보자
자바스크립트는 객체 기반의 스크립트 언어로, 객체는 프로퍼티와 메서드를 포함하는 일종의 컨테이너입니다. 이러한 객체를 다룰 때, 객체의 크기나 길이가 중요한 정보가 될 수 있습니다.
자바스크립트 객체는 일반적으로 배열과 비슷한 형태를 띄며, 객체 내부의 프로퍼티들은 Key와 Value의 쌍으로 이루어져 있습니다. 따라서 객체의 길이는 포함되어 있는 프로퍼티의 수로 결정됩니다.
객체의 길이를 구하는 방법은 여러 가지가 있습니다. 객체의 프로퍼티 수를 구하는 함수를 직접 만들 수도 있지만, JavaScript에서는 기본적으로 제공하는 Object.keys() 메서드를 사용할 수 있습니다.
이 메서드를 사용하면 객체의 Key 값들을 배열 형태로 반환해주기 때문에, 이 배열의 길이를 확인하면 해당 객체의 길이를 쉽게 파악할 수 있습니다.
하지만 만약 객체 내부의 Value 값에 중복이나 undefined 등의 값이 존재할 경우, 길이를 측정하는 과정에서 불확실성이 발생할 수 있습니다. 따라서 객체의 길이를 정확하게 측정하려면, 객체 내부의 값들을 미리 정제해주는 작업이 필요합니다.
JavaScript 객체의 길이를 파악하는 방법과 관련된 내용은 개발자 분들에게 매우 유용한 정보입니다. 이를 활용하여 더 나은 프로그래밍을 하실 수 있도록, 자바스크립트 객체의 길이에 대한 이해를 높이시기 바랍니다.