ํํฐ(Filter)
01. ๊ธฐ๋ณธ
const data = ["A", "B", "C", "D", "A", "C"];
const result = data.filter((value, index) => {
return data.indexOf(value) === index; // ์ฒ์์ผ๋ก ๋์ค๋ ๊ฐ์ ์ธ๋ฑ์ค์ ํ์ฌ ์ธ๋ฑ์ค๊ฐ ๊ฐ์ ์, ํฌํจ
});
ํน์ ๋ฌธ์ ์์น๋ฅผ ์ฐพ๋ indexOf ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.โจ
02. ์์๊ฐ Object
const data = [
{ name: "A", age: "20" },
{ name: "B", age: "24" },
{ name: "C", age: "20" },
{ name: "A", age: "20" },
{ name: "D", age: "24" }
];
const result = data.filter((value, index, arr) => {
return (
arr.findIndex(
(item) => item.name === value.name && item.age === value.age
) === index
);
});
console.log(result);
// [{name:'A',age:'20'}, {name:'B',age:'24'}, {name:'C',age:'20'}, {name:'D',age:'24'}]
์กฐ๊ฑด์ ์ผ์นํ๋ ์์์ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๋ findIndex ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.โจ
์ (Set) ๊ณผ ...(ํ์ฐ ์ฐ์ฐ์)
01. ๊ธฐ๋ณธ
const data = ["A", "B", "C", "D", "A", "C"];
const result = [...new Set(data)];
console.log(result); // ['A', 'B', 'C', 'D']
Set์ ์ด์ฉํ์ฌ ์ค๋ณต ์ ๊ฑฐํฉ๋๋ค. ๐
02. ์์๊ฐ Object
const data = [
{ name: "A", age: "20" },
{ name: "B", age: "24" },
{ name: "C", age: "20" },
{ name: "A", age: "20" },
{ name: "D", age: "24" }
];
const result = [...new Set([...data].map(JSON.stringify))].map(JSON.parse);
console.log(result);
// [{name:'A',age:'20'}, {name:'B',age:'24'}, {name:'C',age:'20'}, {name:'D',age:'24'}]
๊ฐ์ฒด๋ JSON ํํ๋ก ๋น๊ตํ๋ฉฐ, ๊ฐ์ฒด์ ์์ฑ์ด 1๊ฐ๋ง ์๊ฑฐ๋ ๊ฐ์ฒด ๊ฐ์ด ์์ ํ ๊ฐ์ ๊ฒ์ ์ค๋ณต ์ ๊ฑฐ ํ ๊ฒฝ์ฐ๋ง new Set์ ์จ์ผํฉ๋๋ค.
๐ฅ๐ฅ