728x90
반응형
질문 : JavaScript의 객체 배열에서 고유 한 값을 얻는 방법은 무엇입니까?
다음이 있다고 가정합니다.
var array =
[
{"name":"Joe", "age":17},
{"name":"Bob", "age":17},
{"name":"Carl", "age": 35}
]
다음과 같은 결과 배열을 얻을 수 있도록 모든 구별되는 연령의 배열을 얻을 수있는 가장 좋은 방법은 무엇입니까?
[17, 35]
"age"의 값을 확인하는 각 배열을 반복하고 다른 배열의 존재 여부를 확인하고 그렇지 않은 경우 추가 할 필요가 없도록 데이터 또는 더 나은 방법을 대안 적으로 구성 할 수있는 방법이 있습니까?
반복하지 않고 다른 연령대를 뽑을 수있는 방법이 있다면 ...
개선하고 싶은 현재의 비효율적 인 방법 ... "배열"이 객체의 배열이 아니라 고유 한 키 (예 : "1,2,3")가있는 객체의 "맵"이라는 의미라면 좋아요. 나는 가장 성능 효율적인 방법을 찾고 있습니다.
다음은 현재 내가하는 방법이지만, 나에게있어 반복은 효과가 있더라도 효율성을 위해 어리석은 것처럼 보입니다 ...
var distinct = []
for (var i = 0; i < array.length; i++)
if (array[i].age not in distinct)
distinct.push(array[i].age)
답변
이것이 PHP라면 키로 배열을 만들고 array_keys
를 사용하지만 JS에는 그런 사치가 없습니다. 대신 다음을 시도하십시오.
var flags = [], output = [], l = array.length, i;
for( i=0; i<l; i++) {
if( flags[array[i].age]) continue;
flags[array[i].age] = true;
output.push(array[i].age);
}
출처 : https://stackoverflow.com/questions/15125920/how-to-get-distinct-values-from-an-array-of-objects-in-javascript
728x90
반응형
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
자바 스크립트에서 배열을 복제하는 가장 빠른 방법- slice vs for (0) | 2021.11.04 |
---|---|
JSLint 또는 JSHint JavaScript 유효성 검사를 사용해야 하는 이유 (0) | 2021.11.04 |
중첩 된 JavaScript 개체 키의 존재 여부 테스트 (0) | 2021.11.03 |
Java Hashmap : Value에서 Key를 얻는 방법 (0) | 2021.11.03 |
Java에서 함수를 매개 변수로 전달하는 방법 (0) | 2021.11.02 |