programing

JavaScript 개체의 속성을 계산하려면 어떻게 해야 합니까?

elecom 2023. 8. 31. 23:39
반응형

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

반응형