์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ๋ค์ค ์์๋ฅผ ์ ์ฅํ๋ ๋จ์ผ ๋ณ์์ด๋ค.
๋ฐฐ์ด ๋ด ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด ๋ฐํ
let arr = [1, 2, 3, 4, 5];
let arr2 = arry.map(x => x * x);
console.log(arr2);//[1, 4, 9, 16, 25]
์ฃผ์ด์ง ํจ์์ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ ๋ชจ๋ ์์๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํ
let arr = [1, 2, 3, 4, 5];
let result = arr.filter(x => x > 2);
console.log(result);//[3, 4, 5]
๋ฐฐ์ด์ ์์๋ฅผ ์ ์ ํ ์์น์ ์ ๋ ฌํ ํ ๊ทธ ๋ฐฐ์ด์ ๋ฐํ, ๊ธฐ๋ณธ ์ ๋ ฌ ์์๋ ๋ฌธ์์ด์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๋ฅผ ๋ฐ๋ฆ.
let customers = ['dabin', 'joy', 'jocob', 'helena'];
customers.sort();
console.log(customers);//["dabin", "helena", "jocob", "joy"]
let arr = [1, 324, 34541, 58, 11];
arr.sort();
console.log(arr);//[1, 11, 324, 34541, 58]
๋ฐฐ์ด์ ํญ๋ชฉ๋ค์ ์ํํ๋ฉฐ ์ฒ๋ฆฌํ๊ธฐ
let arr = [1, 2, 3, 4, 5];
arr.forEach(function (item, index, array) {
console.log(item, index);
});
/*
1 0
2 1
3 2
4 3
5 4
*/
์ธ์๋ก ์ฃผ์ด์ง ๋ฐฐ์ด์ด๋ ๊ฐ๋ค์ ๊ธฐ์กด ๋ฐฐ์ด์ ํฉ์ณ ์ ๋ฐฐ์ด ๋ฐํ. ๊ธฐ์กด ๋ฐฐ์ด ๋ณ๊ฒฝํ์ง ์๊ณ , ์ถ๊ฐ๋ ์๋ก์ด ๋ฐฐ์ด ๋ฐํ.
let arr1 = [1, 2, 3];
let arr2 = [4, 5, 6];
let arr3 = arr1.concat(arr2);
console.log(arr3);//[1, 2, 3, 4, 5, 6]
๋ฐฐ์ด ์์ ๋ชจ๋ ์์๊ฐ ์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ํต๊ณผํ๋์ง ํ ์คํธ. boolean ๊ฐ์ ๋ฐํ.
let isBelowTwo = (currentValue) => currentValue > 2;
let arr = [1, 2, 3, 4, 5, 6];
console.log(arr.every(isBelowTwo));
//false
๋ฐฐ์ด ์์ ์ด๋ค ์์๋ผ๋ ์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ํต๊ณผํ๋์ง ํ ์คํธ. ๋น ๋ฐฐ์ด์์ ํธ์ถํ๋ฉด ๋ฌด์กฐ๊ฑด false ๋ฐํ.
let isBelowTwo = (currentValue) => currentValue > 2;
let arr = [1, 2, 3, 4, 5, 6];
console.log(arr.some(isBelowTwo));
//true
๋ฐฐ์ด์ด ํน์ ์์๋ฅผ ํฌํจํ๊ณ ์๋์ง ํ๋ณ
let arr = [1, 2, 3, 4, 5, 6];
console.log(arr.includes(4));//true
console.log(arr.includes(7));//false
๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ฐ๊ฒฐํด ํ๋์ ๋ฌธ์์ด๋ก ๋ง๋ ๋ค.
let arr = [1, 2, 3];
console.log(arr.join());//"1,2,3"
console.log(arr.join(''));//"123"
console.log(arr.join('-'));"1-2-3"
๋ฐฐ์ด์ ๊ฐ ์์์ ์ฃผ์ด์ง ๋ฆฌ๋์ ํจ์๋ฅผ ์คํํ๊ณ , ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํ
//๊ตฌ๋ฌธ : arr.reduce(callback[, initialvalue])
let arr = [1, 2, 3];
let reducer = (accumulator, currentValue) => accumulator * currentValue;
console.log(arr.reduce(reducer)); //6
let reducer2 = (accumulator, currentValue) => accumulator + currentValue;
console.log(arr.reduce(reducer2)); //6
//accumulator(๋์ฐ๊ธฐ)๋ ์ฝ๋ฐฑ์ ๋ฐํ๊ฐ์ ๋์
์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ๋ง์กฑํ๋ ์ฒซ ๋ฒ์งธ ์์์ ๊ฐ์ ๋ฐํ. ์์ผ๋ฉด undefined ๋ฐํ.
let arr = [1, 2, 3, 4, 5];
let isLargeNumber = (x) => x > 4;
console.log(arr.find(isLargeNumber)); //5
let isLargerNumber = (x) => x > 7;
console.log(arr.find(isLargerNumber)); //undefined
์ฃผ์ด์ง ํ๋ณ ํจ์๋ฅผ ๋ง์กฑํ๋ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ๋ํ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ. ๋ง์กฑํ๋ ์์ ์์ผ๋ฉด -1 ๋ฐํ.
let arr = [1, 2, 3, 4, 5];
let isLargeNumber = (x) => x > 4;
console.log(arr.findIndex(isLargeNumber)); //4
let isLargerNumber = (x) => x > 7;
console.log(arr.findIndex(isLargerNumber)); //-1
๋ฐฐ์ด ์ ํญ๋ชฉ์ ์ธ๋ฑ์ค ์ฐพ๊ธฐ
let arr = [1, 2, 3, 4, 5];
let a = arr.indexOf(2)
console.log(a); // 1
๋ฐฐ์ด์ ์์ ์ธ๋ฑ์ค๋ถํฐ ๋ ์ต๋ฑ์ค์ ์ด์ ๊น์ง ์ ์ ์ธ ๊ฐ ํ๋๋ก ์ฑ์ด๋ค.
//arr.fill(value[, start[, end]])
//value ํ์, start๋ ์์์ธ๋ฑ์ค/end๋ ๋์ธ๋ฑ์ค
let arr = [1, 2, 3, 4, 5];
console.log(arr.fill(0, 1, 4));//[1, 0, 0, 0, 5]
console.log(arr.fill(4));//[4, 4, 4, 4, 4]
console.log(arr.fill(3, 1));//[4, 3, 3, 3, 3]
๋ฐฐ์ด ๋ณต์ฌํ๊ธฐ
let arr = [1, 2, 3, 4, 5];
let arr2 = arr.slice();
console.log(arr2); //[1, 2, 3, 4, 5]
๋ฐฐ์ด์ ์์๋ฅผ ๋ฐ์ ํ๋ค.
let arr = [1, 2, 3, 4, 5];
arr.reverse();
console.log(arr); //[5, 4, 3, 2, 1]
๋ฐฐ์ด ๋์ ํญ๋ชฉ ์ถ๊ฐํ๊ธฐ
let arr = [1, 2, 3, 4, 5];
arr.push(6);
console.log(arr); // [1, 2, 3, 4, 5, 6]
๋ฐฐ์ด ๋์์๋ถํฐ ํญ๋ชฉ ์ ๊ฑฐํ๊ธฐ
let arr = [1, 2, 3, 4, 5];
arr.pop();
console.log(arr); // [1, 2, 3, 4]
๋ฐฐ์ด ์์์๋ถํฐ ํญ๋ชฉ ์ ๊ฑฐํ๊ธฐ
let arr = [1, 2, 3, 4, 5];
arr.shift();
console.log(arr); //[2, 3, 4, 5]
๋ฐฐ์ด ์์ ํญ๋ชฉ ์ถ๊ฐํ๊ธฐ
let arr = [1, 2, 3, 4, 5];
arr.unshift(0);
console.log(arr); // [0, 1, 2, 3, 4, 5]
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array
์ฌ์ ์ ์ผ๋ก ๋ํ์ด๋ฅผ ์๋ฏธํ๋ฉฐ, while๋ฌธ์ด๋ for๋ฌธ๊ณผ ๊ฐ์ ๋ฌธ๋ฒ์ด๋ค. Iteration์ ์ํํ๊ธฐ ์ํด Iterable๊ณผ Iterator ๋ ํ๋กํ ์ฝ์ด ๋ชจ๋ ์กด์ฌํด์ผํ๋ค
for in๊ณผ for of๋ ๋ฐ๋ณต์ด ๊ฐ๋ฅํ ๊ฐ์ฒด์ ๋ชจ๋ ์์๋ฅผ ํ๋์ฉ ์ถ์ถํด ๋ณ์์ ๋ด์ ๋ฐ๋ณต๋ฌธ์ ์ํํ๋ ๋ฌธ๋ฒ์ด๋ค.
//for in
for(let value in arr) {
console.log(value)
}
//for of
for(let value of arr) {
console.log(value)
}
์ด ๋์ ๋ฐ๋ณตํ๋ ๋์๊ณผ ๋ณ์์ ์ฐจ์ด๊ฐ ์๋ค.
for in
1. Iterable object ๋ชจ๋๊ฐ ๋ฐ๋ณต๋์
2. value์๋ index๊ฐ ๋ฌ๋ ค์์
for of
1. Iterable object ์ด์ง๋ง, prototype chain์ ์ํด ๋ถ๋ชจ์ ์กด์ฌํ๋ Iterable ์ ์ธํ๊ณ ๋ฐ๋ณต๋์
2. value์๋ ์ค์ ์์์ ๊ฐ๋ง ์์๋๋ก ๋ด๊น
https://victorydntmd.tistory.com/89
ํธ๋ฆฌํ์ง๋ง, ๊ฐ์ ๋ณ์๋ช ์ ์ฌ์ฉํ ์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๊ธฐ ์ฝ๋ค. ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด ES6๋ถํฐ let๊ณผ const๊ฐ ์ถ๊ฐ๋์๋ค.
var a = 'today';
console.log(a) //"today"
var a = 'yesterday';//๋ณ์ ์ฌ์ ์ธ
console.log(a) //"yesterday"
let b = 'a'
console.log(b) //"a"
b = 'b'//๋ณ์ ์ฌํ ๋น
console.log(b)//"b"
let b = 'c'
console.log(b) //error, ๋ณ์ ์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ
const c = 'c'
console.log(c) //"c"
const c = 'b'
console.log(c) //error, ๋ณ์ ์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ
c = 'b'
console.log(c) //error, ๋ณ์ ์ฌํ ๋น ๋ถ๊ฐ๋ฅ
https://gist.github.com/LeoHeo/7c2a2a6dbcf80becaaa1e61e90091e5d