반응형
오브젝트 내의 여러 어레이를 평탄화 및 구별
다음과 같은 대상이 있습니다.
'1': {
id: 1,
...
tags: ['cat I', 'cat II']
},
'2': {
id: 2,
tags: ['cat II', 'cat III']
}
모든 카테고리(복제 없음)를 취득하려면 , 다음의 순서를 실행합니다.
const cats = [];
this.courses.forEach(data => (data.tags) ? cats.push(data.tags) : '');
return [...new Set(cats.flat())];
그것은 효과가 있지만 나는 이것이 "과도한" 방법이라는 느낌이 든다.계산된 속성에 있기 때문에 두 번 실행됩니다.
카테고리를 구별하고 걸러낼 수 있는 다른 방법이 있습니까?가게에 문의해서라도?
사용하다Array.flatMap()태그의 배열을 취득합니다.파괴 및 기본값을 사용하여 다음 정보를 얻을 수 있습니다.tags속성을 지정하거나 빈 배열을 할당할 수 있습니다.고유한 태그를 가져오려면 태그 배열에서 집합을 생성하고 집합을 배열로 다시 펼칩니다.
const data = [{"id":1,"tags":["cat I","cat II"]},{"id":2,"tags":["cat II","cat III"]},{"id":3}]
const result = [...new Set(data.flatMap(({ tags = [] }) => tags))]
console.log(result)
다음 작업을 수행합니다.
const courses = [{id: 1, tags: ['cat I', 'cat II ']}, {id: 2, tags: ['cat II', 'cat III']}, {id: 3}]
const tags = courses
.reduce((a, { tags = [] }) => [...a, ...tags], [])
.map(tag => tag.trim()) // <-- to remove extra spaces in "cat II "
const result = [...new Set(tags)]
console.log(result)
언급URL : https://stackoverflow.com/questions/58553806/flatten-and-distinct-multiple-arrays-in-an-object
반응형
'programing' 카테고리의 다른 글
| ubuntu에 mysql이 설치되어 있는지 어떻게 확인할 수 있습니까? (0) | 2022.10.14 |
|---|---|
| 오류: Django 1.4에서 "사전 업데이트 시퀀스 요소 #0의 길이가 1입니다. 2가 필요합니다" (0) | 2022.10.14 |
| Java에서 익명 내부 클래스는 어떻게 사용됩니까? (0) | 2022.10.14 |
| JavaScript 형식 지정으로 문자열을 datetime으로 변환하려면 어떻게 해야 합니까? (0) | 2022.10.14 |
| 모든 div 콘텐츠를 비활성화하는 방법 (0) | 2022.10.14 |