๐ก ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ์์ ๋ฅผ ์์ฑํ๋ฉฐ ์์๋ณด์.
์ด๋ฒ ํฌ์คํธ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ํน์ง๊ณผ ๋ฐฐ์ด์ ํ๋กํ ํ์ ํจ์๋ค์ ์ ๋ฆฌํ๊ณ , ๊ณต๋ถํ๋ ์๊ฐ์ ๊ฐ์ ธ๋ณผ ๊ฒ์ด๋ค.
๋งค์ฐ ๋งค์ฐ ์์ฃผ ์ฌ์ฉ๋๋ reduce
, filter
.. ๋ฑ๋ฑ ๋ฐฐ์ด ํ๋กํ ํ์
ํจ์๋ค์ ์์ ๋ฅผ ํตํด ํํค์ณ๋ณด๊ณ ์ต์ํด์ง๋ ์๊ฐ์ ๊ฐ์ง๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ๋ค๋ฅธ ์ธ์ด์์ ๋งํ๋ ์ผ๋ฐ์ ์ธ ๋ฐฐ์ด์ด ์๋ Hash ๊ธฐ๋ฐ์ ๊ฐ์ฒด์ด๋ค.
๋ค๋ฅธ ์ธ์ด์์์ ๋ฐฐ์ด์ด๋ผ๋ ์๋ฃ ๊ตฌ์กฐ์ ๊ฐ๋
์ ๋์ผํ ํฌ๊ธฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ๋นํ์์ด ์ฐ์์ ์ผ๋ก ๋์ด๋ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๋งํ๋ฉฐ
๋ฐฐ์ด์ ์์๊ฐ ํ๋์ ํ์
์ผ๋ก ํต์ผ๋์ด ์๊ณ , ์๋ก ์ฐ์์ ์ผ๋ก ์ธ์ ํด ์๋๋ฐ์ง ๋ฐฐ์ด
(dense array)์ด๋ค.
๋ฐ์ง ๋ฐฐ์ด
์ ์ธ๋ฑ์ค๋ฅผ ํตํด ๊ณ ์์ผ๋ก ํจ์จ์ ์ด๊ฒ ์์์ ์ ๊ทผํ ์ ์๋ค๋ ์ฅ์ ์ด ์๋ค.(์๊ฐ ๋ณต์ก๋ O(1))
ํ์ง๋ง ์ ๋ ฌ๋์ง ์์ ๋ฐฐ์ด์์ ํน์ ํ ๊ฐ์ ํ์ํ๋ ๊ฒฝ์ฐ, ๋ชจ๋ ๋ฐฐ์ด ์์๋ฅผ ์ฒ์๋ถํฐ ๊ฐ์ ๋ฐ๊ฒฌํ ๋๊น์ง ์ฐจ๋ก๋๋ก ํ์ํด์ผ ํ๋ค๋ ๋จ์ ์ด ์๋ค. (์๊ฐ ๋ณต์ก๋ O(n))
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฐฐ์ด์ ์์๋ฅผ ์ํ ๊ฐ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋์ผํ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์์๋ ๋๋ฉฐ ์ฐ์์ ์ผ๋ก ์ด์ด์ ธ ์์ง ์์ ์๋ ์๋ค.
๋ฐฐ์ด์ ์์๊ฐ ์ฐ์์ ์ผ๋ก ์ด์ด์ ธ ์์ง ์๋ ๋ฐฐ์ด์ ํฌ์ ๋ฐฐ์ด
(sparse array)์ด๋ผ ํ๋ค.
์ผ๋ฐ์ ์ธ ๋ฐฐ์ด
์ ์ธ๋ฑ์ค๋ก ๋ฐฐ์ด ์์์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋ค. ํ์ง๋ง ํน์ ์์๋ฅผ ํ์ํ๊ฑฐ๋ ์์๋ฅผ ์ฝ์ ๋๋ ์ญ์ ํ๋ ๊ฒฝ์ฐ์๋ ํจ์จ์ ์ด์ง ์๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด
์ ํด์ ํ ์ด๋ธ๋ก ๊ตฌํ๋ ๊ฐ์ฒด์ด๋ฏ๋ก ์ธ๋ฑ์ค๋ก ๋ฐฐ์ด ์์์ ์ ๊ทผํ๋ ๊ฒฝ์ฐ, ์ผ๋ฐ์ ์ธ ๋ฐฐ์ด๋ณด๋ค ์ฑ๋ฅ์ ์ธ ๋ฉด์์ ๋๋ฆด ์ ๋ฐ์ ์๋ ๊ตฌ์กฐ์ ์ธ ๋จ์ ์ ๊ฐ๋๋ค. ํ์ง๋ง ํน์ ์์๋ฅผ ํ์ํ๊ฑฐ๋ ์์๋ฅผ ์ฝ์ ๋๋ ์ญ์ ํ๋ ๊ฒฝ์ฐ์๋ ์ผ๋ฐ์ ์ธ ๋ฐฐ์ด๋ณด๋ค ๋น ๋ฅธ ์ฑ๋ฅ์ ๊ธฐ๋ํ ์ ์๋ค.
์ด์ฒ๋ผ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ์๋ฐํ ๋งํด ์ผ๋ฐ์ ์๋ฏธ์ ๋ฐฐ์ด์ด ์๋๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ์ผ๋ฐ์ ์ธ ๋ฐฐ์ด์ ๋์์ ํ๋ด๋ธ ํน์ํ ๊ฐ์ฒด์ด๋ค.
let nums = [];
nums.push("one");
nums.push("two");
console.log(nums.length); // 2
console.log(nums); // [ 'one', 'two' ]
console.log(Object.getOwnPropertyDescriptors(nums));
// {
// '0': {
// value: 'one',
// writable: true,
// enumerable: true,
// configurable: true
// },
// '1': {
// value: 'two',
// writable: true,
// enumerable: true,
// configurable: true
// },
// length: { value: 2, writable: true, enumerable: false, configurable: false }
// }
๐ก ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ํ๋กํผํฐ ํค๋ก ๊ฐ์ผ๋ฉฐ length ํ๋กํผํฐ๋ฅผ ๊ฐ๋ ํน์ํ ๊ฐ์ฒด์ด๋ค.
์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์
๊ฐ์ฒด
์ด๋ฏ๋ก ๋ฐฐ์ด๊ณผ ๊ฐ์ด ๊ฐ์ฒด๋ฅผ ์ ์ธํ๋ฉด ๋ฐฐ์ด๊ณผ ๋น์ทํ๊ฒ ๋์ํ๋ค.
์๋๋ ์ ์ฌ๋ฐฐ์ด์ ์์์ด๋ค.
let arr = [1, 2, 3];
let nodes = document.querySelectorAll('div'); // NodeList [div, div ...]
// ์ ์ฌ ๋ฐฐ์ด
let arrLikeObj = {
0: 'a',
1: 'b',
2: 'c',
3: 'd',
length: 4
};
Array.isArray(array); // true
Array.isArray(nodes); // false
Array.isArray(arrLikeObj); // false
์ ์์ ๋ฅผ ๋ณด๋ฉด arrLikeObj ๊ฐ์ฒด๋ ๋ฐฐ์ด๊ณผ ๋์ผํ๊ฒ ๋์ํ ์ ์๋ค.
let arrLikeObj = {
0: 'a',
1: 'b',
2: 'c',
3: 'd',
length: 4
};
console.log(arrLikeObj[0]); // a
console.log(arrLikeObj[1]); // b
console.log(arrLikeObj[2]); // c
console.log(arrLikeObj[3]); // d
console.log(arrLikeObj.length); // 4
์ด๋ ๊ฒ ๋์ผํ๊ฒ ๋์ํ ์ ์์ง๋ง, ๋ฐฐ์ด๊ณผ ์ ์ฌ ๋ฐฐ์ด์ ๊ตฌ๋ถํด์ผํ๋ ์ด์ ๋ ์ ์ฌ๋ฐฐ์ด์ ๊ฒฝ์ฐ ๋ฐฐ์ด์ ๋ฉ์๋๋ฅผ ์ธ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ฌ๋ฐฐ์ด์ call
์ด๋ apply
๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด ํ๋กํ ํ์
์์ ๋ฉ์๋๋ฅผ ๋น๋ ค ์จ์ผํ๋ค.
// forEach ๋น๋ฆฌ๊ธฐ
Array.prototype.forEach.call(arrLikeObj, function(item) { console.log(item); });
[].forEach.call(arrLikeObj, function(item) { console.log(item); });
// ES6
Array.from(arrLikeObj).forEach(function(item) { console.log(item) });
๋ฉ์๋๋ฅผ ๋น๋ ค ์ ์ฌ ๋ฐฐ์ด์ ๋ฐฐ์ด์ฒ๋ผ ๋์์ํค๋ ๊ฒ์ ์น ํ๋ก์ ํธ๋ฅผ ํ ๋ API ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ ๊ณผ์ ์์ ์ฌ์ฉํ๋ ๊ธฐ์ต์ด ์๋ค.
์์ฃผ ์ฌ์ฉ๋๋ ๋ฐฐ์ด ๋ฉ์๋๋ฅผ ์ ๋ฆฌ
Array.push(item)
Array.pop()
let nums = [1, 2, 3, 4, 5];
console.log(nums); // [ 1, 2, 3, 4, 5 ]
nums.push(6);
console.log(nums); // [ 1, 2, 3, 4, 5, 6 ]
nums.pop();
console.log(nums); // [ 1, 2, 3, 4, 5 ]
Array.unshift(item)
Array.shift()
let nums = [1, 2, 3, 4, 5];
console.log(nums); // [ 1, 2, 3, 4, 5 ]
nums.unshift(0);
console.log(nums); // [ 0, 1, 2, 3, 4, 5 ]
nums.shift();
console.log(nums); // [ 1, 2, 3, 4, 5 ]
Array.splice(index[, deleteCount, elem1,...elemN])
let uname = ['๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด'];
let ref;
ref = uname.splice(3);
console.log(ref); // [ '์ต๊ตญ์ง', '์ ๋ฐ๋ณด' ]
console.log(uname); // [ '๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ' ]
ref = uname.splice(1, 1);
console.log(ref); // [ '๋ฐ์ ๋ฏผ' ]
console.log(uname); // [ '๊น์ ํ', '์ดํธ์ญ' ]
ref = uname.splice(1, 1, 'noob');
console.log(ref); // [ '์ดํธ์ญ' ]
console.log(uname); // [ '๊น์ ํ', 'noob' ]
splice
๋ ์๋ณธ์ด ํผ์๋๋ค.
Array.slice([start], [end])
let uname = ['๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด'];
// 1(์ ์ธ) ์ค๋ฅธ์ชฝ ์ถ๋ ฅ
console.log(uname.slice(1)); // [ '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด' ]
// 3(์ ์ธ) ์ค๋ฅธ์ชฝ ์ถ๋ ฅ
console.log(uname.slice(3)); // [ '์ต๊ตญ์ง', '์ ๋ฐ๋ณด' ]
// 1(์ ์ธ) ~ 3 ์ฌ์ด ์ถ๋ ฅ
console.log(uname.slice(1, 3)); // [ '๋ฐ์ ๋ฏผ', '์ดํธ์ญ' ]
// -2(ํฌํจ) ์ค๋ฅธ์ชฝ ์ถ๋ ฅ
console.log(uname.slice(-2)); // [ '์ต๊ตญ์ง', '์ ๋ฐ๋ณด' ]
// ์๋ณธ ์ ์ง
console.log(uname); // [ '๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด' ]
slice
๋ ์๋ณธ์ด ์ ์ง๋๋ค.
Array.concat(arg1, arg2, arg3, ...)
let uname = ['๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด'];
console.log(uname.concat('noob1')); // [ '๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด', 'noob1' ]
console.log(uname.concat(['noob1', 'noob2'], 'noob3')); // [ '๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด', 'noob1', 'noob2', 'noob3' ]
// ์๋ณธ ํผ์ X
console.log(uname); // [ '๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด' ]
for
-loop(index)let uname = ['๊น์ ํ', '๋ฐ์ ๋ฏผ', '์ดํธ์ญ', '์ต๊ตญ์ง', '์ ๋ฐ๋ณด'];
for (let i = 0; i < uname.length; i++) {
console.log(uname[i]);
}
// output : ๊น์ ํ ๋ฐ์ ๋ฏผ ์ดํธ์ญ ์ต๊ตญ์ง ์ ๋ฐ๋ณด
for...of
(item)for (let name of uname) {
console.log(name);
}
// output : ๊น์ ํ ๋ฐ์ ๋ฏผ ์ดํธ์ญ ์ต๊ตญ์ง ์ ๋ฐ๋ณด
for...in
(key)for (let key in uname) {
console.log(uname[key]);
}
// output : ๊น์ ํ ๋ฐ์ ๋ฏผ ์ดํธ์ญ ์ต๊ตญ์ง ์ ๋ฐ๋ณด
Array.indexOf(item)
let uname = ['e', 'c', 'f', 'a', 'd', 'b', 'a'];
console.log(uname.indexOf('a')); // index : 3
console.log(uname.indexOf('z')); // index : -1 (์กด์ฌ X)
console.log(uname.indexOf('a', 4)); // index : 6 (index 4 ์ดํ์ ์ค๋ณต item index)
console.log(uname.indexOf('a', uname.indexOf('a') + 1)); // index : 6 (์ฒซ ๋ฒ ์จฐ item์ ์ค๋ณต item index)
Array.lastIndexOf(item)
console.log(uname.lastIndexOf('a')); // index : 6
console.log(uname.lastIndexOf('a', -2)); // index : 3
Array.includes(item)
console.log(uname.includes('a')); // true
console.log(uname.includes('z')); // false
Array.sort()
let abc = ['e', 'c', 'f', 'a', 'd', 'b', 'a'];
let nums = [5, 3, 6, 1, 2, 4, 7];
console.log(abc.sort()); // ['a', 'a', 'b', 'c', 'd', 'e','f']
console.log(nums.sort()); // [1, 2, 3, 4, 5, 6, 7]
sort
๋ฉ์๋๋ฅผ ์ฌ์ฉํ ๋ ๋ฌธ์ ์ ๊ณผ ์ ๋ ฌ ๋ถ๊ฐ๋ฅํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฐ, sort์ ์ฝ๋ฐฑํจ์๋ฅผ ๋ฃ์ด ์กฐ๊ฑด ๋ถ ์ ๋ ฌ์ด ๊ฐ๋ฅํ๋ค. ์๋ ๊ณ ์ฐจ ํจ์ ๋ถ๋ถ ์์ ์์ ํ์ธ ๊ฐ๋ฅํ๋ค.
Array.reverse()
console.log(abc.reverse()); // [ 'f', 'e', 'd', 'c', 'b', 'a', 'a']
console.log(nums.reverse()); // [7, 6, 5, 4, 3, 2, 1]
Array.join(separator)
let hello = ['์', '๋
', 'ํ', '์ธ', '์', ' ', 'join', '์์ ', '์
๋๋ค.'];
console.log(hello.join('~')); // ์~๋
~ํ~์ธ~์~ ~join~์์ ~์
๋๋ค.
console.log(hello.join('')); // ์๋
ํ์ธ์ join์์ ์
๋๋ค.
let str = hello.join('!');
console.log(str); // ์!๋
!ํ!์ธ!์! !join!์์ !์
๋๋ค.
console.log(str.split('!')); // ['์', '๋
', 'ํ', '์ธ', '์', ' ', 'join', '์์ ', '์
๋๋ค.']
let nums = [10, 2, 4, 3, 5, 20, 7, -1, 9, 1];
console.log(nums.sort()); // [ -1, 1, 10, 2, 20, 3, 4, 5, 7, 9]
console.log(nums.reverse()); // [9, 7, 5, 4, 3, 20, 2, 10, 1, -1]
let abc = ['e', 'c', 'f', 'a', 'd', 'F', 'b', 'A'];
console.log(abc.sort()); // ['A', 'F', 'a', 'b', 'c', 'd', 'e', 'f']
console.log(abc.reverse()); // ['f', 'e', 'd', 'c', 'b', 'a', 'F', 'A']
sort ๋ฉ์๋๋
(method) Array<number>.sort(compareFn?: (a: number, b: number) => number)
๋ก ๋ ์์ ๊ฐ์ ๋น๊ตํด์ ๋์ํ๋ ์ ๋ ฌ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
let nums = [10, 2, 4, 3, 5, 20, 7, -1, 9, 1];
// ์ค๋ฆ์ฐจ์
nums.sort(function (x, y) {
return x - y;
})
console.log(nums);
// ๋ด๋ฆผ์ฐจ์
nums.sort(function (x, y) {
return y - x;
})
console.log(nums);
let abc = ['e', 'c', 'f', 'a', 'd', 'F', 'b', 'A'];
// ์ค๋ฆ์ฐจ์
abc.sort(function (x, y) {
x = x.toUpperCase();
y = y.toUpperCase();
if (x > y) return 1;
else if (x < y) return -1;
else return 0;
})
console.log(abc);
// ๋ด๋ฆผ์ฐจ์
abc.sort(function (x, y) {
x = x.toUpperCase();
y = y.toUpperCase();
if (x < y) return 1;
else if (x > y) return -1;
else return 0;
})
console.log(abc);
const ascendingOrder = function (x, y) {
if (typeof x === "string") x = x.toUpperCase();
if (typeof y === "string") y = y.toUpperCase();
return x > y ? 1 : -1;
}
const descendingOrder = function(x, y) {
if (typeof x === "string") x = x.toUpperCase();
if (typeof y === "string") y = y.toUpperCase();
return x < y ? 1 : -1;
}
nums.sort(ascendingOrder);
abc.sort(descendingOrder);
์ฃผ์ด์ง ํจ์๋ฅผ ๋ฐฐ์ด ์์ ๊ฐ๊ฐ์ ๋ํด ์คํ :
Array.forEach(function(item, index, array){})
let abc = ['a', 'b', 'c', 'd'];
abc.forEach(function (i) {
console.log(i);
})
abc.forEach(function (item, index) {
console.log(item + ' foreach');
})
// a
// b
// c
// d
// a foreach
// b foreach
// c foreach
// d foreach
์ฃผ์ด์ง ํจ์๋ฅผ ๋ฐฐ์ด ์์ ๊ฐ๊ฐ์ ๋ํด ์คํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์ด๋ก ๋ฐํ :
Array.map(function(item, index, array){})
let abc = ['a', 'b', 'c', 'd'];
let abcMap = abc.map(function (item) {
return item + ' map ์ํ';
})
for (let item of abcMap) {
console.log(item);
}
// a map ์ํ
// b map ์ํ
// c map ์ํ
// d map ์ํ
์ฝ๋ฐฑ ํจ์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋จ ํ๋์ ๊ฐ๋ง ๋ฐํ :
Array.find(function(item, index, array){})
let person = [
{
name: '๊น์ ํ',
age: 28
},
{
name: '๋ฐฐ์ค์ฃผ',
age: 26
},
{
name: '๊น๊ธธ๋',
age: 16
},
{
name: '๋ฐ๊ธธ๋',
age: 18
}
];
let findName = person.find(function (user) {
return user.name === '๊น์ ํ';
});
let findAge = person.find(function (user) {
return user.age < 18;
})
console.log(findName); // { name: '๊น์ ํ', age: 28 }
console.log(findAge); // { name: '๊น๊ธธ๋', age: 16 }
์ฝ๋ฐฑ ํจ์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๊ฐ์ ๋ฐฐ์ด๋ก ๋ฐํ :
Array.filter(function(item, index, array){})
let person = [
{
name: '๊น์ ํ',
age: 28
},
{
name: '๋ฐฐ์ค์ฃผ',
age: 26
},
{
name: '๊น๊ธธ๋',
age: 16
},
{
name: '๋ฐ๊ธธ๋',
age: 18
}
];
let findAge = person.filter(function (user) {
return user.age > 18;
})
console.log(findAge); // [ { name: '๊น์ ํ', age: 28 }, { name: '๋ฐฐ์ค์ฃผ', age: 26 } ]
์์ ๋ณ ํจ์ ์ํ ๋์ ๊ฒฐ๊ณผ๊ฐ ๋ฐํ :
Array.reduce(function(accumulator, item, index, array){})
let nums = [1, 2, 3, 4, 5, 6, 7];
let count = 0;
let sum = nums.reduce(function (acc, item, index, array) {
count++
console.log(acc, " ", item, " ", index);
return acc + item;
}, 0); // acc๊ฐ initํ๋ ๋ถ๋ถ(default : 1)
console.log("count : " + count);
// 0 1 0
// 1 2 1
// 3 3 2
// 6 4 3
// 10 5 4
// 15 6 5
// 21 7 6
// count : 7
๋ฐฐ์ด ๋ด ๋จ ํ๋๋ผ๋ ์ฝ๋ฐฑ ํจ์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๊ฐ ์๋ค๋ฉด true
Array.some(function(item, index, array){})
let person = [
{
name: '๊น์ ํ',
age: 28
},
{
name: '๋ฐฐ์ค์ฃผ',
age: 26
},
{
name: '๊น๊ธธ๋',
age: 16
},
{
name: '๋ฐ๊ธธ๋',
age: 18
}
];
let someAge = person.some(function (user) {
return user.age == 28;
})
console.log(someAge); // true
๋ฐฐ์ด ๋ด ๋ชจ๋ ์์๊ฐ ์ฝ๋ฐฑ ํจ์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๊ฐ ์๋ค๋ฉด true
Array.every(function(item, index, array){})
let person = [
{
name: '๊น์ ํ',
age: 28
},
{
name: '๋ฐฐ์ค์ฃผ',
age: 26
},
{
name: '๊น๊ธธ๋',
age: 16
},
{
name: '๋ฐ๊ธธ๋',
age: 18
}
];
let everyAge = person.every(function (user) {
return user.age > 15;
})
console.log(everyAge); // true
์ด๋ฒ ํฌ์คํธ์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด์ ๋ํด ์์๋ณด๊ณ , ์ผ๋ฐ ๋ฐฐ์ด๊ณผ์ ์ฐจ์ด์ ์ ๋ํด ๊ณต๋ถํด๋ณด์๋ค.
๋ํ, ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด์ ํ๋กํ ํ์ ๋ฉ์๋ 14๊ฐ์ง ์ ๋๋ฅผ ์ดํด๋ณด์๊ณ . ๊ฐ๊ฐ์ ๋์์๋ฆฌ์ ๋ํด ์ดํดํ๊ณ , ์์ ์ฝ๋๋ก ์ค์ต์ ํด๋ณด์๋ค.
์ด์ ๊ฐ์ธ ํ๋ก์ ํธ ๋ฑ์ ์งํํ๋ฉด์ reduce, filter, map ๋ฑ ํจ์๋ค์ ์์ฃผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ฒ ๊ธฐํ์ ์ ๋ฆฌ๋ฅผ ํด๋ณด๋ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
API ํธ์ถ๋ก ๊ฐ์ ธ์ค๋ JSON Data์ ๊ฐ๊ณต์ด๋ Data ํํฐ ์กฐํ ์ ์ฌ์ฉํ๋๋ฐ,, ๊ฐ์ฒด์ depth๊ฐ ๊น์ด์ง ์๋ก ํจ์๋ฅผ ์ง๊ธฐ๊ฐ ์ด๋ ค์ ๋ ๊ฒ ๊ฐ๋ค. ๊ธฐ์ด๋ฅผ ๋จ๋จํ ํ์์ผ๋ ๋ค์์ ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ ๊ฒ ๊ฐ๋ค.