JavaScript 개체의 속성을 계산하려면 어떻게 해야 합니까?
JavaScript에 다음과 같은 개체가 있다고 가정합니다.
var object = {
"key1": "value1",
"key2": "value2",
"key3": "value3"
};
개체에 몇 개의 값이 있는지 확인하려면 어떻게 해야 합니까?
다음과 같은 간단한 코드를 사용하여 이 작업을 수행할 수 있습니다.
Object.keys(myObject).length
쉬운 답은 없어요, 왜냐하면ObjectJavaScript의 모든 객체가 파생되는 - 자동으로 많은 속성을 포함하며, 정확한 속성 집합은 특정 인터프리터와 이전에 실행된 코드에 따라 달라집니다.그래서, 당신은 어떻게든 당신이 정의한 것들과 당신이 "공짜로" 얻은 것들을 분리해야 합니다.
한 가지 방법이 있습니다.
var foo = {"key1": "value1", "key2": "value2", "key3": "value3"};
Object.prototype.foobie = 'bletch'; // add property to foo that won't be counted
var count = 0;
for (var k in foo) {
if (foo.hasOwnProperty(k)) {
++count;
}
}
alert("Found " + count + " properties specific to foo");
두 번째 줄은 다른 코드가 모든 코드에 속성을 추가하는 방법을 보여줍니다.Object파생 상품제거할 경우hasOwnProperty()루프 내부를 확인하면 속성 수가 최소 4개까지 증가합니다.이 코드 외에 다른 자바스크립트가 있는 페이지에서, 만약 그 다른 코드가 또한 수정한다면, 그것은 4보다 높을 수 있습니다.Object원형의
밑줄 라이브러리를 사용하면 매우 유용합니다._.keys(obj).length.
개체를 반복하여 키 또는 값을 가져올 수 있습니다.
function numKeys(obj)
{
var count = 0;
for(var prop in obj)
{
count++;
}
return count;
}
"스펠링 실수"처럼 보이지만 당신의 예시가 잘못된 구문이라는 것을 지적하고 싶을 뿐입니다.
var object = {"key1":"value1","key2":"value2","key3":"value3"};
var miobj = [
{"padreid":"0", "sw":"0", "dtip":"UNO", "datos":[]},
{"padreid":"1", "sw":"0", "dtip":"DOS", "datos":[]}
];
alert(miobj.length) //=== 2
그렇지만
alert(miobj[0].length) //=== undefined
이 기능은 매우 좋습니다.
Object.prototype.count = function () {
var count = 0;
for(var prop in this) {
if(this.hasOwnProperty(prop))
count = count + 1;
}
return count;
}
alert(miobj.count()) // === 2
alert(miobj[0].count()) // === 4
이 함수는 Mozilla의 기능을 사용합니다.__count__속성(모든 속성에 대해 반복하는 것보다 빠른 속도로 사용할 수 있는 경우).
function countProperties(obj) {
var count = "__count__",
hasOwnProp = Object.prototype.hasOwnProperty;
if (typeof obj[count] === "number" && !hasOwnProp.call(obj, count)) {
return obj[count];
}
count = 0;
for (var prop in obj) {
if (hasOwnProp.call(obj, prop)) {
count++;
}
}
return count;
};
countProperties({
"1": 2,
"3": 4,
"5": 6
}) === 3;
편집: 이렇게 하면 jquery와 관련된 오류가 발생하고 기타 불편한 사항이 발생합니다. 당신은 그것을 사용해서는 안 됩니다: (아마도 공공 재산 기능 대신에 개인적인 방법을 추가할 수 있다면, 이것은 괜찮을 것이지만, 지금은 시간이 없습니다.)커뮤니티 위키드
사용 안 함:
기본적으로 javascript의 객체에는 카운트 함수가 없지만 클래스는 쉽게 확장할 수 있으며 사용자가 직접 추가할 수 있습니다.
Object.prototype.count = function () {
var count = 0;
for(var prop in this) {
if(this.hasOwnProperty(prop))
count = count + 1;
}
return count;
}
그 후에 한 명이 실행할 수 있도록.
var object = {'key1': 'val1', 'key2':'val2', 'key3':'val3'};
console.log(object.count()); // 3
결과적으로, 객체에서 카운트 기능을 사용하려면 코드 블록 1에서 코드를 복사하여 실행 시간 초기에(카운트를 호출하기 전에) 붙여넣어야 합니다.
그게 당신에게 효과가 있는지 알려주세요!
안녕하세요, 페드로
"진정한 객체"는 아니지만 항상 다음과 같은 작업을 수행할 수 있습니다.
var foo = [
{Key1: "key1"},
{Key2: "key2"},
{Key3: "key3"}
];
alert(foo.length); // === 3
언급URL : https://stackoverflow.com/questions/1345939/how-do-i-count-a-javascript-objects-attributes
'programing' 카테고리의 다른 글
| Swift에서 배열의 항목을 새 위치로 다시 정렬하는 방법은 무엇입니까? (0) | 2023.08.31 |
|---|---|
| 날짜 데이터 유형 기본값을 설정하는 방법은 무엇입니까? (0) | 2023.08.31 |
| Javascript Array Concat이 작동하지 않습니다. 왜죠? (0) | 2023.08.31 |
| AJAX에서 중첩된 FormData 전송 (0) | 2023.08.31 |
| Docker CMD를 여러 번 사용하여 여러 서비스를 실행할 수 없는 이유는 무엇입니까? (0) | 2023.08.31 |