๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

javascript/ES6

ES6 Javascript : set()์ž๋ฃŒ๊ตฌ์กฐ - keys(), values()

728x90

https://www.scaler.com/topics/javascript/map-and-set-javascript/

set ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ด์ „ python์—์„œ ํ•™์Šตํ–ˆ๋˜ ๊ฐœ๋…๊ณผ ๋˜‘๊ฐ™์•˜๋‹ค.

์ค‘๋ณต์ด ๋  ์ˆ˜ ์—†๊ณ ! ์ธ๋ฑ์Šค ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฉฐ! ์ƒ์„ฑ์ž new๋กœ Set์„ ์„ ์–ธํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

let test=new Set(["apple","banana","watermelon")] //Set์€ ์ƒ์„ฑํ• ๋•Œ new Set()
test.add("orange") //์ถ”๊ฐ€
test.add("tiger")
test.delete("tiger") //์‚ญ์ œ
console.log(test[0]) // undefinded --> set์€ index์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.(๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅธ์ )

for(let i in test){
	console.log(i)
} 
//undefined --> index ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ!

for(let i of test){
	console.log(i)
}
/*  apple
    banana
    watermelon
    orange	*/

 

 

 

์ถœ๋ ฅ์‹œ ์œ ์šฉํ•œ Spread ์—ฐ์‚ฐ์ž

Spread ์—ฐ์‚ฐ์ž๋Š” Iterable Object์˜ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ถ„๋ฆฌํ•˜์—ฌ ์ „๊ฐœ

let testArr=['a', 'b', 'c', 'd']
console.log(...testArr) // a b c d
console.log([...testArr])//['a', 'b', 'c', 'd']
console.log([..'hello']) //['h', 'e', 'l', 'l', 'o']

 

Spread ์—ฐ์‚ฐ์ž๋ฅผ ์ด์šฉํ•ด Set๊ฐ์ฒด๋ฅผ ์‰ฝ๊ฒŒ ๋ฐฐ์—ด ๊ฐ์ฒด๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋‹ค.

let arr=[...test]
console.log(test) // {"apple", "banana", "watermelon", "orange"}
console.log(arr) //["apple", "banana", "watermelon", "orange"] 
console.log(arr[0]) // apple

 

๋˜ํ•œ Set์—๋Š” keys(), values() ๋ฉ”์„œ๋“œ๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์ด๋ฅผ ํ™œ์šฉํ•ด iterator๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜ ๋” ๋ฐ˜ํ™˜ํ•œ๋‹ค.

const key_itr =test.keys();
console.log(key_itr.next().value); //apple
console.log(key_itr.next().value); //banana
console.log(key_itr.next().value); //watermelon
console.log(key_itr.next().value); //orange

const val_itr =test.values();
console.log(val_itr.next().value); //apple
console.log(val_itr.next().value); //banana
console.log(val_itr.next().value); //watermelon
console.log(val_itr.next().value); //orange

 

728x90