๐Ÿ’ป My Work/๐Ÿ”ฅ React

[React/JS] ์š”์†Œ๊ฐ€ Object์ธ ๋ฐฐ์—ด์˜ ์ค‘๋ณต ์ œ๊ฑฐํ•˜๊ธฐ

Jaeseo Kim 2022. 11. 8. 22:01

ํ•„ํ„ฐ(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์„ ์จ์•ผํ•ฉ๋‹ˆ๋‹ค.

 

 

๐Ÿ”ฅ๐Ÿ”ฅ