์ฑ <๋ฌ๋์๋ฐ์คํฌ๋ฆฝํธ>๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ๋ฐฐ์ด ์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฉ์ ๋๋ค.
๋ชฉ์ฐจ
- 1. ๋ฐฐ์ด์ ์์ ์กฐ์
- 2. ๋ฐฐ์ด ๊ฒ์
- 3. ๋ฐฐ์ด์ ์์ ๋ณํ
- 4. ๋ฐฐ์ด ์์ฒด๋ฅผ ๋ณํ
- 5. ๋ฌธ์์ด ๋ณํฉ
<๋ฐฐ์ด๊ณผ ๋ฐฐ์ด์ฒ๋ฆฌ>
๋ฐฐ์ด์ ์์ ์กฐ์ | ๋ฐฐ์ด์ ์์ ํ๋ ์ถ๊ฐ/์ ๊ฑฐ | push/pop(๋) unshift/shif(์ฒ์) |
๋ฐฐ์ด์ ๋์ ์ฌ๋ฌ ์์ ์ถ๊ฐ | concat | |
๋ฐฐ์ด์ผ๋ถ ๊ฐ์ ธ์ค๊ธฐ | slice | |
์์์ ์์น์ ์์ ์ถ๊ฐ/์ ๊ฑฐ | splice | |
๋ฐฐ์ด ์์์ ์์ ๊ต์ฒดํ๊ธฐ | copyWithin | |
ํน์ ๊ฐ์ผ๋ก ๋ฐฐ์ด ์ฑ์ฐ๊ธฐ | fill | |
๋ฐฐ์ด ์ ๋ ฌ | sort/reverse | |
๋ฐฐ์ด ๊ฒ์ | ์กฐ๊ฑด์ ๋ง๋ ์์์ ์ธ๋ฑ์ค ๊ฒ์ | indexOf/lastIndexOf ๋๋ findIndex |
์กฐ๊ฑด์ ๋ง๋ ์์ ๊ฒ์ | find | |
some๊ณผ every | ||
๋ฐฐ์ด์ ์์ ๋ณํ | ์์ ๋ณํ, ์ฌ๋ณธ ๋ฐํ | map |
์์ ๋ณํ, ๋ฐฐ์ด์์ ํ์ํ ๊ฒ๋ง ๋จ๊ธด ์ฌ๋ณธ ๋ฐํ | filter | |
๋ฐฐ์ด ์์ฒด๋ฅผ ๋ณํ | reduce | |
๋ฌธ์์ด ๋ณํฉ | Array.prototype.join(๊ตฌ๋ถ์) |
1. ๋ฐฐ์ด์ ์์ ์กฐ์
1-1) ๋ฐฐ์ด์ ์์ ํ๋ ์ถ๊ฐ/์ ๊ฑฐ
- push/pop - ๋ฐฐ์ด์ ๋์ ์์๋ฅผ ์ถ๊ฐ/์ ๊ฑฐ
- unshift/shif - ๋ฐฐ์ด์ ์ฒ์์ ์์๋ฅผ ์ถ๊ฐ/์ ๊ฑฐ
var fruits = ["Apple","Banana","Orange","Strawberry"];
var push = fruits.push("Grape"); //๋งจ ๋์ "Grape"์ถ๊ฐ
var pop = fruits.pop(); //๋งจ ๋์ "Grape"์ ๊ฑฐ
var unshift = fruits.unshift("Grape"); //๋งจ ์์ "Grape"์ถ๊ฐ
var shift = fruits.shift(); //๋งจ ์์ "Grape"์ ๊ฑฐ
console.log(push);
console.log(pop);
console.log(unshift);
console.log(shift);
console.log(fruits);
1-2) ๋ฐฐ์ด์ ๋์ ์ฌ๋ฌ ์์ ์ถ๊ฐ
- concat - ๋ฐฐ์ด์ ๋์ value ์์๋ค์ ์ถ๊ฐํ ์๋ก์ด ์ฌ๋ณธ์ ๋ฐํ
arr.concat(value);
var arr = [1, 2, 3];
var newArr = arr.concat(4, 5, 6); // newArr: [1, 2, 3, 4, 5, 6]
var newArr = arr.concat([4, [5, 6]]); // newArr: [1, 2, 3, 4, [5, 6]]
1-3) ๋ฐฐ์ด์ผ๋ถ ๊ฐ์ ธ์ค๊ธฐ
- slice( a, b ) - ์ธ๋ฑ์ค a~(b-1)๊น์ง ๊ฐ์ ธ์ด
var fruits = ["Apple","Banana","Orange","Strawberry"];
var a = [1, 2, 3, 4, 5];
a.slice(0, 3); // [1, 2, 3]์ ๋ฐํํ๋ค.
a.slice(3); // [4, 5]๋ฅผ ๋ฐํํ๋ค.
a.slice(1, -1); // [2, 3, 4]๋ฅผ ๋ฐํํ๋ค.
a.slice(-3, -2) // [3]์ ๋ฐํํ๋ค.
1-4) ์์์ ์์น์ ์์ ์ถ๊ฐ/์ ๊ฑฐ
- splice( x, n, ์ถ๊ฐ๋ ์์๋ค ) - ์ธ๋ฑ์ค x์์ n๊ฐ๋งํผ ๊ฐ์ ธ์ค๊ธฐ
var fruits = ["Apple","Banana","Orange","Strawberry"];
var splice = fruits.splice(1, 2); //fruits[1]๋ถํฐ 2๊ฐ ๊ฐ์ ธ์ค๊ธฐ
console.log(splice);
console.log(fruits);
#์ถ๋ ฅ๊ฒฐ๊ณผ
["Banana","Orange"]
["Apple","Strawberry"]
1-5) ๋ฐฐ์ด ์์์ ์์ ๊ต์ฒดํ๊ธฐ
- copyWithin( x, a, b ) - ์ธ๋ฑ์ค a~(b-1)๊น์ง ๋ณต์ฌํด ์ธ๋ฑ์ค x์ ๋ณต์ฌํ ์์๋ฅผ ๋ถ์ฌ๋์
const arr = [1, 2, 3, 4];
arr.copyWithin(1, 2) // arr = [1, 3, 4, 4]
arr.copyWithin(2, 0, 2) // arr = [1, 3, 1, 3]
arr.copyWithin(0, -3, -1) // arr = [3, 1, 1, 3]
1-6) ํน์ ๊ฐ์ผ๋ก ๋ฐฐ์ด ์ฑ์ฐ๊ธฐ
- fill( x, a, b ) - ์ธ๋ฑ์ค a~(b-1)๊น์ง x๋ก ์ฑ์
const arr = new Array(5).fill(1) // arr = [1, 1, 1, 1, 1]๋ก ์ด๊ธฐํ๋จ
arr.fill("a"); // arr = ["a", "a", "a", "a", "a"]
arr.fill("b", 1) // arr = ["a", "b", "b", "b", "b"]
arr.fill("c", 2, 4) // arr = ["a", "b", "c", "c", "b"]
arr.fill(5.5, -4) // arr = ["a", 5.5, 5.5, 5.5, 5.5]
1-7) ๋ฐฐ์ด ์ ๋ ฌ
- sort() - ์ ๋ ฌ
- reverse() - ์ญ์ ์ ๋ ฌ
2. ๋ฐฐ์ด ๊ฒ์
2-1) ์กฐ๊ฑด์ ๋ง๋ ์์์ ์ธ๋ฑ์ค ๊ฒ์
- indexOf/ lastIndexOf - ๋ฐฐ์ด ์ฒ์/ ๋์์ ๋ถํฐ ์์ ๊ฒ์ํด ์ ํํ ์ผ์นํ๋ ์ฒซ๋ฒ์งธ ์์์ ์ธ๋ฑ์ค ๋ฐํ
- findIndex - ๋ณด์กฐ ํจ์๋ก ๊ฒ์ ์กฐ๊ฑด ์ง์ ํ์ฌ ๊ฒ์ ๊ฐ๋ฅ, ์์ ๊ฒฝ์ฐ -1๋ฐํ
2-2) ์กฐ๊ฑด์ ๋ง๋ ์์ ๊ฒ์
- find - ๋ณด์กฐ ํจ์๋ก ๊ฒ์ ์กฐ๊ฑด ์ง์ ํ์ฌ ๊ฒ์ ๊ฐ๋ฅ, ์์ ๊ฒฝ์ฐ undefinded๋ฐํ
#indexOf/ lastIndexOf ์์
let str = 'Brave new world';
console.log(str.indexOf('w')); // output> 8
console.log(str.lastIndexOf('w')); // output> 10
console.log(str.indexOf('new')); // output> 6
console.log(str.lastIndexOf('new')); // output> 6
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
//findIndex
const findIndexValue = arr.findIndex(data => data % 2);
console.log('findIndexValue', findIndexValue); // 0
//find
const findValue = arr.find(data => data % 2);
console.log('findValue', findValue); // 1
โปfind์ findIndex์ ์ ๋ฌํ๋ ํจ์
- ๋งค๊ฐ๋ณ์๋ก ๋ฐ๋ ๊ฒ : 1. ๋ฐฐ์ด์ ๊ฐ ์์ 2. ํ์ฌ ์์์ ์ธ๋ฑ์ค, ๋ฐฐ์ด ์์ฒด
- this์์ ๊ฐ๋ฅ : this์ด์ฉํ๋ฉด ํจ์๊ฐ ๊ฐ์ฒด์ ๋ฉ์๋์ธ ๊ฒ์ฒ๋ผ ํธ์ถ์ด ๊ฐ๋ฅํ๋ค.
arr.find(function(p){
return p.id === this.id
}, juliet);
2-3) some๊ณผ every
- some - ์กฐ๊ฑด์ ๋ง๋ ์์ ์ฐพ์ผ๋ฉด ์ฆ์ ๊ฒ์ ์ค๋จํ๊ณ true ๋ฐํ, ์ฐพ์ง ๋ชปํ๋ฉด false ๋ฐํ
- every - ๋ฐฐ์ด์ ๋ชจ๋ ์์๊ฐ ์กฐ๊ฑด์ ๋ง์์ผ true ๋ฐํ, ์กฐ๊ฑด์ ๋ง์ง ์๋ ์์๋ฅผ ์ฐพ์์ผ false ๋ฐํ
every์์ ์ฐจ์ด์ ์ every๋ ๋ชจ๋ ๊ฐ์ด true์ฌ์ผํ๊ณ some์ ํ๋๋ง true๋ฅผ ๋ฐํํ๋ฉด ๋๋ค.
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
//some
const someArr = arr.some(data => data > 2);
console.log('someArr', someArr); // true
//every
const everyValue = arr.every(data => data > 2);
console.log('everyValue', everyValue); // false
3. ๋ฐฐ์ด์ ์์ ๋ณํ - map๊ณผ filter
3-1) map - ๋ฐฐ์ด ์์ ๋ณํ, ์ฌ๋ณธ ๋ฐํ
const cart = [{name: "Widget", price: 9.95}, {name: "Gadget", price: 22.95}];
const names = cart.map(x => x.name); // ["Widget", "Gadget"]
const prices = cart.map(x => x.price); // [9.25, 22.95]
const discountPrices = price.map(x => x * 0.8); // [7.96, 18.36]
3-2) filter - ๋ฐฐ์ด์์ ํ์ํ ๊ฒ๋ง ๋จ๊ธด ์ฌ๋ณธ ๋ฐํ
const words = ['spray', 'limit', 'elite', 'exuberant', 'destruction', 'present'];
words.filter(word => word.length > 6); // ["exuberant", "destruction", "present"]
4. ๋ฐฐ์ด ์์ฒด๋ฅผ ๋ณํ - reduce
4-1) reduce( a, x ) - ์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์์ธ a์๋ ๋ฐฐ์ด์ด ์ค์ด๋๋ ๋์์ธ accumulator, ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ถํฐ๋ (ํ์ฌ ๋ฐฐ์ด์์, ํ์ฌ ์ธ๋ฑ์ค, ๋ฐฐ์ด ์์ฒด) ์ด๋ค.
reduce๋ ์ด ํฉ์ ๋ฐํํ๊ฑฐ๋, ์๋จ์ด๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด์ ์ฒซ ๊ธ์์ ๋ฐ๋ผ ๋ฌถ๊ฑฐ๋, set์ ํ๊ท ๋ฐ ๋ถ์ฐ์ ๊ณ์ฐํ ๋ ์ฌ์ฉํ ์ ์๋ค.
#๋ฐฐ์ด์ ์ด ํฉ์ ๋ฐํ
const arr = [5, 7, 2, 4];
const sum = arr.reduce((a, x) => a += x, 0); // 18
5. ๋ฌธ์์ด ๋ณํฉ
5-1) Array.prototype.join(๊ตฌ๋ถ์)
const arr = [1, null, "hello", "world", true, undefined];
delete arr[3];
arr.join(); // "1,,hello,,true,"
arr.join(''); // "1hellotrue"
arr.join(' -- '); // "1 -- -- hello -- -- true -- "
'๐ฐ ์ธ์ด > JS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP) (0) | 2020.01.05 |
---|---|
๊ฐ์ฒด ์งํฅ ์ธ์ด - ํ๋กํ ํ์ ๊ธฐ๋ฐ ์ธ์ด(JS) (0) | 2020.01.04 |
์ค์ฝํ(2) (0) | 2019.12.22 |
์ค์ฝํ(1) (0) | 2019.12.20 |
๋ฐ์ดํฐ ํ์ & ํจ์ (0) | 2019.12.17 |