selectedIndex에는 선택된 index들의 값들이 들어있다.
선택된 index들은 arr배열에서 삭제하고 싶었다.
const arr= [
{id:1, name:'AAA'}, // 0
{id:2, name:'BBB'}, // 1
{id:3, name:'CCC'}, // 2
{id:4, name:'DDD'}, // 3
{id:5, name:'EEE'}, // 4
]
const selectedIndex= [0,2,3]
1. Object의 key들의 값을 비교해주고 key값이 다른 아이들만 담아줬다.
2. reduce로 담아진 key들에 값을 넣어줬다.
3. 2번 과정을 거치면 중간에 삭제된 곳에는 빈 값이 들어가므로 null이 아닌 값들만 리턴해준다.
const filteredData = Object.keys(arr)
.filter((key) => !selectedItem.includes(Number(key)))
.reduce((obj, key) => {
obj[key] = arr[key];
return obj;
}, [])
.filter((el) => {
return el !== null;
});
console.log(filteredData)
// [{id: 2, name: "BBB"}, {id: 5, name: "EEE"}]
'IT > JavaScript' 카테고리의 다른 글
자바스크립트에서 뒤로가기 감지하기 (0) | 2022.06.07 |
---|---|
slice와 splice의 차이점 (0) | 2022.04.05 |
padEnd() (0) | 2022.03.30 |
정규식 표현식 (0) | 2022.03.30 |
[TIL] 클로저(Closure)란? (0) | 2022.02.21 |