0
나는 변경할 수없는 다차원 배열을 가지고 있습니다. 그러나 나는 아직도 내가 어떻게 다차원 불변 객체로 작업 해야하는지 잘 모르겠다.복잡한 불변 객체로 작업하기
// data
{
// item
{
name: someName,
todos: [
{ id: 1, name: todoName },
{ id: 2, name: todoName2 }
]
}
}
가 어떻게 수행 할 작업의 고유 한 목록을 추출 할 수 있습니다 :
내가이 유사한 구조를 가지고 있다고하자? 전 쉽게 만드는 도서관 - Immutable.js 대 JS에서 사용할 수있는 기술 - immutability :
// Saving todos
let uniqueTodos = []
// Saving ids of todos
let saved = []
// I want to make data immutable list
data.forEach(item => {
item.todos.forEach(todo => {
if (saved.indexOf(todo.id) === -1) {
saved.push(todo.id)
todos.push(todo)
}
})
})
return todos
내 질문을 편집했습니다. – Michal
필터 프로토 타입 메서드를 사용하여 살펴보기 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter 고유 한 개체를 처리하는 방법에 대해서는 이름 . 배열에 ToDo를 추가하기 전에 실제로 이름이 이미 존재하는지 확인하기 위해 반복하십시오. 그것은 최적이 아니지만 작동합니다. 속도가 필요한 경우 todos를 저장하기 위해 다른 데이터 구조를 고려하십시오. –