๐Ÿ—‚๏ธ Front/๐Ÿ–ฑ๏ธ JavaScript

[JavaScript] ๋ฐฐ์—ด์—์„œ ์ค‘๋ณต๋œ ๊ฐ’ ์ œ๊ฑฐํ•˜๋Š” 4๊ฐ€์ง€ ๋ฐฉ๋ฒ• (set, filter, index of, reduce)

๊ฑ€๊ฑ€๋‹ฌ๊ฑ€๊ผฌ๋งˆ 2023. 1. 26. 22:05
728x90
๋ฐ˜์‘ํ˜•

๐Ÿค” Set

set์€ ์ค‘๋ณต๋ฐ์ดํ„ฐ์ €์žฅ์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ž„.

๊ทธ๋ž˜์„œ set์„ ํ•œ ๋ฒˆ ๊ฑฐ์น˜๋ฉด ์ค‘๋ณต์ œ๊ฑฐ๊ฐ€ ๋˜๋Š” ๊ตฌ์กฐ.

 

๊ทผ๋ฐ ์–˜๋Š” {}ํ˜•ํƒœ๋กœ ๋‚˜์˜ด. ๋‹ค์‹œ ๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋กœ ๋ฐ”๊พธ๋ ค๋ฉด

  1.  [...set operator] ๋ฌธ๋ฒ•์ด๋‚˜
  2.  Array.form

์ด ๋‘ ๊ฐ€์ง€๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•จ

let arr = [1, 1, 2, 3, 1];

let newArr = new Set(arr);	// {1, 2, 3}
console.log([...newArr]);	// [1, 2, 3]
console.log(Array.form(newArr);	// [1, 2, 3]

 

 

 

 

 

 

๐Ÿค” filter(), indexOf()

indexOf(element)๋Š” ๋ฐฐ์—ด์—์„œ ์š”์†Œ์˜ index๋ฅผ ๋ฆฌํ„ดํ•˜๋Š”๋ฐ,

์ค‘๋ณต๊ฐ’์ด ์žˆ์„ ๊ฒฝ์šฐ ๋‚ฎ์€ Index๋ฅผ ๋ฆฌํ„ดํ•จ.

๊ทธ๋ž˜์„œ indexOf(element) === index๊ฐ€ true๊ฐ€ ๋˜๋Š” ๊ฒฝ์šฐ๋Š” ํ•˜๋‚˜๋ฟ์ด๊ณ , ๋‹ค๋ฅธ ์ค‘๋ณต๋œ ๊ฐ’์€ flase๊ฐ€ ๋ฆฌํ„ด๋˜์–ด filter์— ์˜ํ•ด ๊ฑธ๋Ÿฌ์ง.

์ฐธ๊ณ ๋กœ filter(lambda)๋Š” ๋žŒ๋‹ค๊ฐ€ true์ผ ๋•Œ ๊ทธ ์š”์†Œ๋ฅผ ๊ฒฐ๊ณผ์— ํฌํ•จ์‹œํ‚ด.

let arr = [1, 1, 2, 3, 1];

let newArr = arr.filter((element, index) => arr.indexOf(element) === index);
console.log(newArr);	// [1, 2, 3]

 

 

 

 

 

๐Ÿค” reduce()

reduce()๋Š” ๋ฐฐ์—ด ์š”์†Œ์˜ ๊ฐ’๋“ค์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉด์„œ ํ•˜๋‚˜์˜ ๊ฐ’์„ ๋งŒ๋“œ๋Š” ํ•จ์ˆ˜์ž„.

์ดˆ๊ธฐ๊ฐ’ initialValue๊ฐ€ ์ฃผ์–ด์ง€๋ฉด, ๋ฐฐ์—ด์˜ 0๋ฒˆ index๋กœ๋ถ€ํ„ฐ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์Œ ์—ฐ์‚ฐ์˜ ์ธ์ž(accumulator)๋กœ ์ „๋‹ฌํ•จ. (๋ˆ„์ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋  ๋“ฏ)

์•„๋ž˜ ์˜ˆ์ œ๋Š” reduce๋กœ ์ค‘๋ณต์ œ๊ฑฐ๋ฅผ ํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ๋ฐ accumulator์— ์ถ”๊ฐ€ ์•ˆ ๋œ ์š”์†Œ๋ผ๋ฉด ์ถ”๊ฐ€ํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ถ”๊ฐ€ํ•˜์ง€ ์•Š์Œ.

+) ๋ฆฌ๋“€์Šค๋Š” ์ž์ฃผ ์“ฐ๋Š” ํ•จ์ˆ˜๋ผ ์•Œ์•„๋‘๋ฉด ์ข‹์„ ๋“ฏํ•˜๋‹ค.

let arr = [1, 1, 2, 3, 1];

let newArr = arr.reduce((acc, cur) => acc.includes(cur) ? acc : [...acc, cur], [])
console.log(newArr);	// [ 1, 2, 3]

 

 

 

 

๐Ÿค” for ๋ฐ˜๋ณต๋ฌธ

๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๋ชจ๋“  ์š”์†Œ๋ฅผ ๋Œ๋ฉด์„œ ์ค‘๋ณต๊ฐ’์„ ์ œ๊ฑฐํ•˜๋„๋ก ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Œ.

์•„๋ž˜ ์˜ˆ์ œ๋Š” forEach๋ฅผ ์‚ฌ์šฉํ•ด ๊ตฌํ˜„ํ–ˆ์Œ

let arr = [1, 1, 2, 3, 1];
let newArr = [];

arr.forEach((element)=>{
	if(!newArr.includes(element)){
    	newArr.push(element);
    }
});

console.log(newArr);	// [1, 2, 3]

 

 

 

 

TMI. ๋‚œ ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์“ด๋‹ค. ๊ตฌ๋ƒฅ ์ œ์ผ ๊ฐ„๋‹จํ•˜๊ธฐ ๋•Œ๋ฌธ

cosnt newArr = [...new Set(arr)]

 

 

 

 

 


 

๐Ÿ› ๏ธ Reference

https://codechacha.com/ko/javascript-remove-duplicates-in-array/

728x90
๋ฐ˜์‘ํ˜•