IT/JavaScript
index값들로 배열에서 삭제하기
솔B
2022. 3. 18. 10:47
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"}]