JavaScript Treats ๐ฌ #1: ๋ฐฐ์ด ๋ถํด๋ก ๊ฐ์ฒด ๋ฐ๋ณตํ๊ธฐ
6688 ๋จ์ด tutorialwebdevprogrammingjavascript
์๊ฐโจ
์๋ ํ์ธ์, ์ ๋ ์ด์์ ๋๋ค! ์ ๋ ์ฃผ๋ก JavaScript๋ก ์ฝ 11๋ ๋์ ์ฝ๋ฉ์ ํด์์ต๋๋ค. ๋๋ ๊ทธ ๋ช ๋ ๋์ ๋ช ๊ฐ์ง ๊น๋ค๋ก์ด ๋ฌธ์ ์ ๋ถ๋ชํ๊ธฐ ๋๋ฌธ์ "JavaScript Treats"์๋ฆฌ์ฆ๋ฅผ ๋ง๋ค๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ์ด๋ฌํ ๋ฌธ์ ์ ์ฌ์ฉํ ์ ์๋ ์ ์ฉํ ์ ํธ๋ฆฌํฐ ๊ธฐ๋ฅ์ด ๋ ๊ฒ์ ๋๋ค.
์ค๋์ ๊ฐ์๐ฌ
JavaScript์์
Object
๋ฅผ ๋ฐ๋ณตํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ ๊ฐ์ง๊ฐ ์์ต๋๋ค. ์ค๋์ ์ ๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.const object = {
a: 1,
b: 2,
c: 3,
d: 4,
}
// convert object to a 2D array of [key, value] pairs.
const objectEntries = Object.entries(object);
// destructure object entry array into a key and value variable
objectEntries.forEach(([key, value]) => {
console.log(key, value); // logs: "a 1"
})
ํ ์ดํฌ ํ ๊ธฐ๋ฅ ๐พ
const iterateObject = (object, callback) => {
Object.entries(object).forEach(callback);
}
const mapObject = (object, callback) => {
return Object.entries(object).map(callback);
}
const reduceObject = (object, callback, defaultValue) => {
return Object.entries(object).reduce(callback, defaultValue);
}
์ฌ์ฉ ์ ๐ง
iterateObject(object, ([key, value]) => {
console.log(key, value); // a 1
});
const mapped = mapObject(object, ([key, value]) => value);
console.log(mapped); // [1, 2, 3, 4]
const reduced = reduceObject(object, (final, [key, value]) => {
return {
...final,
[key]: value + 1,
}
}, object);
console.log(reduced); // { a: 2, b: 3, c: 4, d: 5 }
๊ฒฐ๋ก ๐
์ด ์๋ฆฌ์ฆ์ ๋ชจ๋ JavaScript Treats๋ ์ฌ๊ธฐgithub repository์์ ํธ์คํ ๋ฉ๋๋ค.
๋น์ ์ด ์ฌ๊ธฐ๊น์ง ํ๋ค๋ฉด, ๋ฐ๋ผ๊ฑด๋ ๋น์ ์ ๋น์ ์ ๋ ์๋ฅผ ์ฆ๊ฒผ๊ณ ๋ฌด์ธ๊ฐ๋ ๋ฐฐ์ ์ต๋๋ค! ๋ค๋ฅธ ํ๋ซํผ์์ ์ ๋ฅผ ํ๋ก์ฐํ๊ณ ์ถ์ผ์๋ฉด ์ ๋ ํธ์์น์์ ์คํธ๋ฆฌ๋ฐํ๊ณ ํธ์ํฐ์์๋ ์ ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
์ฝ์ด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
Reference
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(JavaScript Treats ๐ฌ #1: ๋ฐฐ์ด ๋ถํด๋ก ๊ฐ์ฒด ๋ฐ๋ณตํ๊ธฐ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://dev.to/helloitsian/javascript-treats-1-iterating-an-object-with-array-destructuring-3lm6ํ ์คํธ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋ ๋ณต์ฌํ ์ ์์ต๋๋ค.ํ์ง๋ง ์ด ๋ฌธ์์ URL์ ์ฐธ์กฐ URL๋ก ๋จ๊ฒจ ๋์ญ์์ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค