다음이 있다고 가정합니다.
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)
Set
물건과 map
낭비입니다. 이 작업은 간단한 .reduce()
단계를 수행합니다.