๐ก ๋์ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํต์ฌ ๊ฐ์ด๋๋ฅผ ์ฝ๊ณ ์ ๋ฆฌํฉ๋๋ค.
7.1 for (value of iterable)
for...of
๋ฌธ์ ๋ฐฐ์ด์ ๊ดํ ๋ฐ๋ณต๋ฌธ์ ๋๋ฆฌ๊ธฐ ์ํด์ ๋ง๋ค์ด์ง ๋ฐ๋ณต๋ฌธ์ด๋ค. ๋ฐ๋ผ์ ์ดํฐ๋ฌ๋ธ ๊ฐ์ฒด(Array, Map, Set, String, TypedArray, arguments ๊ฐ์ฒด ๋ฑ์ ํฌํจ)์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.
์ฌ์ค ์ด ๊ตฌ๋ฌธ์ ๋ฐฐ์๋๋ ์ฌ์ฉ ํ ์ผ์ด ๋ณ๋ก ์๋ค. ๋ณดํต ๋ฐฐ์ด์ ๋ฐ๋ณตํ ๋์๋
map
๋ฑ์ ๋ฐฐ์ด ๋ด์ฅ ํจ์๋ฅผ ๋ง์ด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ธฐ๋ณธ ๋ฌธ๋ฒ
const array = [1, 2, 4, 5];
for (let value of array) { // use strict ํ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ let์ ๋นผ๋ ๋จ
console.log(value);
}
// 1
// 2
// 4
// 5
๋ฐฐ์ด์ ๋ํ ๋ฐ๋ณต
// for
var fruits = ['apple','banana','orange'];
for (var i = 0; i < fruits.length; i++){
console.log(fruits[i]);
}
// apple
// banana
// orange
// for of
const fruits = ['apple','banana','orange'];
for(const fruit of fruits){
console.log(fruit);
}
// apple
// banana
// orange
๊ฐ์ฒด์ ๋ํ ๋ฐ๋ณต
๊ฐ์ฒด ๋ฐ๋ณต๋ฌธ์ ์์๋ณด๊ธฐ ์ ์, ๊ฐ์ฒด์ ์ ๋ณด๋ฅผ ๋ฐฐ์ด ํํ๋ก ๋ฐ์์ฌ ์ ์๋ ํจ์๋ฅผ ์์๋ณด์.
Object.entries
:[[ํค, ๊ฐ], [ํค, ๊ฐ]]
ํํ์ ๋ฐฐ์ด๋ก ๋ณํObject.keys
:[ํค, ํค, ํค]
ํํ์ ๋ฐฐ์ด๋ก ๋ณํObject.values
:[๊ฐ, ๊ฐ, ๊ฐ]
ํํ์ ๋ฐฐ์ด๋ก ๋ณํ
const doggy = {
name: '๋ฉ๋ฉ์ด',
sound: '๋ฉ๋ฉ',
age: 2
};
console.log(Object.entries(doggy));
console.log(Object.keys(doggy));
console.log(Object.values(doggy));
์ด์ ๋ฐ๋ณต๋ฌธ์ ์ดํด๋ณด์. ๊ฐ์ฒด๋ ์ดํฐ๋ฌ๋ธ์ด ์๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด์ key, value ์์ ๋ํ ๋ฐ๋ณต์ ๋ค์๊ณผ ๊ฐ์ด ์ฒ๋ฆฌํ ์ ์๋ค.
Object.keys()
์ด์ฉ
const car = {
maker: "BMW",
color: "red",
year : "2010",
}
for (const prop of Object.keys(car)){
const value = car[prop];
console.log(prop,value);
}
// maker BMW
// color red
// year 2010
Object.entries()
์ด์ฉ
const car = {
maker: "BMW",
color: "red",
year : "2010",
}
for (const prop of Object.entries(car)){
const value = car[prop];
console.log(prop,value);
}
// ['maker', 'BMW']
// ['color', 'red']
// ['year', '2010']
7.2 for (key in obj)
for...in
๋ฌธ์ ๊ฐ์ฒด๋ฅผ ์ํ ๋ฐ๋ณต๋ฌธ์ด๋ค.
๊ธฐ๋ณธ ๋ฌธ๋ฒ
const obj = {
name: 'newstar'
}
for (let key in obj) { // use strict ํ๊ฒฝ์ด ์๋ ๊ฒฝ์ฐ let์ ๋นผ๋ ๋จ
console.log(key); // name
}
for in
์ ์์ ์์ด ๊ฐ์ฒด์ ๋ชจ๋ ์ด๊ฑฐ ๊ฐ๋ฅํ ์์ฑ์ ๋ฐ๋ณตํ๊ธฐ ๋๋ฌธ์ for of
์ ์ฝ๊ฐ ๋ค๋ฅด๋ค. ๋ฐ๋ผ์ ๋ฐ๋ณต ์ค์๋ ๊ฐ์ฒด์ ์์ฑ์ ์ถ๊ฐ, ์์ , ์ญ์ ํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
const car = {
maker: "BMW",
color: "red",
year : "2010",
}
for (const prop in car){
console.log(prop, car[prop]);
}
// maker BMW
// color red
// year 2010
7.3 for of์ for in์ ์ฐจ์ด
for in
์ ๋ฐฐ์ด์ ์์ฑ ๋ชฉ๋ก์ ๋ฐํํ๋ ๋ฐ๋ฉด, for of
๋ ๋ฐฐ์ด์ ์์ ๋ชฉ๋ก์ ๋ฐํํ๋ค.
let list = [4, 5, 6];
// for...in ์ key ๋ฐํ
for (let i in list) {
console.log(i); // "0", "1", "2",
}
// for ...of ๋ value ๋ฐํ
for (let i of list) {
console.log(i); // "4", "5", "6"
}
์ฐธ๊ณ
'Tech > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Chapter 09: Spread์ Rest (Spread operator and rest parameters) (0) | 2022.01.23 |
---|---|
Chapter 08: ๋ฐฐ์ด ๋ฉ์๋ (Array improvements) (0) | 2022.01.22 |
Chapter 06: ๋์คํธ๋ญ์ฒ๋ง - ๊ตฌ์กฐ ๋ถํด ํ ๋น (Destructuring) (0) | 2022.01.19 |
Chapter 05: ๋ฌธ์์ด ๋ฉ์๋ (Additional string methods) (0) | 2022.01.18 |
Chapter 04: ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด (Template literals) (0) | 2022.01.16 |