-
Notifications
You must be signed in to change notification settings - Fork 1
/
javascript_array_func.js
77 lines (70 loc) ยท 3.31 KB
/
javascript_array_func.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// 0. concat:
// ์ธ์๋ก ์ฃผ์ด์ง ๋ฐฐ์ด์ด๋ ๊ฐ๋ค์ ๊ธฐ์กด ๋ฐฐ์ด์ ํฉ์ณ์ ์ ๋ฐฐ์ด์ return
var items = [1, 2];
var newItems = items.concat(3, 4, 5, 'str', undefined);
console.log(newItems); // [ 1, 2, 3, 4, 5, 'str', undefined ]
// 1. join
// join ์ ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ฐ๊ฒฐํด ํ๋์ ๋ฌธ์์ด๋ก ๋ง๋ฌ
// ์ธ์๋ก ํน์ ๋ฌธ์์ด์ ์ ๋ฌํ๋ฉด, ํน์ ๋ฌธ์์ด๋ก ๊ตฌ๋ถ์๋ก ์์๋ค์ ์ฐ๊ฒฐ
// ๋ฐฐ์ด ์์ ๊ฐ์ด null ์ด๊ฑฐ๋ undefined ์ผ ๊ฒฝ์ฐ, ๋น ๋ฌธ์์ด์ return
var names = ['shane', 'alan', 'osbourne'];
console.log(names.join('-')); // shane-alan-osbourne
// ๋ค๋ฅธ ๋ฉ์๋์ ํจ๊ป ์ฌ์ฉํ ์์
var name = 'shane osbourne';
var upper = name
.split(' ')
.map((x) => x.charAt(0).toUpperCase() + x.slice(1))
.join(' ');
console.log(upper); // Shane Osbourne
// 2. indexOf
// ๋ฐฐ์ด์์ ์ง์ ๋ ์์๋ฅผ ์ฐพ์ ์์๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ ์กด์ฌํ์ง ์์ผ๋ฉด -1์ ๋ฐํ(return ๊ฐ์ ๊ฒ์ฌํด์ Boolean ํํ๋ก ํ์ฉ ๊ฐ๋ฅ)
// ===(Strict Equality Comparison Algorithm: ์๋ฃํ ์ผ์น์ฌ๋ถ๊น์ง ๋น๊ต)
console.log('---- indexOf ----');
var x = [10, 20, 30, 40, 40];
var idx = x.indexOf(20);
console.log(idx); // 1
var idx = x.lastIndexOf(40); // ํด๋น ๊ฐ์ ๋ง๋ ๋ง์ง๋ง ์ธ๋ฑ์ค ๋ฐํ
console.log(idx); // 4
// 3. slice
// ๋ฐฐ์ด์ ์ ์ฒด ํน์ ๋ถ๋ถ ๋ณต์ (clone)ํ ๋
// ์ธ์๋ฅผ ๋๊ฐ ๋ฐ๋๋ค. ์์ index(ํฌํจ) ์ ๋ index(๋นํฌํจ)
console.log('---- slice ----');
var x = [10, 20, 30, 40, 50];
console.log(x.slice()); // ์ ์ฒด ๋ณต์ฌ : [ 10, 20, 30, 40, 50 ]
console.log(x.slice(1, 2)); // 1(ํฌํจ) ๋ถํฐ 2๊น์ง(๋นํฌํจ) : [20]
// 3-2 splice:
// ๊ธฐ์กด ์์๋ฅผ ์ ๊ฑฐํ๊ฑฐ๋ ์ ์์๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐฐ์ด์ ๋ด์ฉ์ ๋ณ๊ฒฝ
// start: ๋ฐฐ์ด์ ๋ณ๊ฒฝ์ ์์ํ๋ ์ธ๋ฑ์ค
// deleteCount: ๋ฐฐ์ด์์ ์ ๊ฑฐ๋ฅผ ํ ์์์ ์
// itemN: ๋ฐฐ์ด์ ์ถ๊ฐ๋ ์์, ๋ฆฌํด ๊ฐ: ์ญ์ ๋ ์์๋ค์ ๋ฐฐ์ด์ด ๋ฆฌํด
// array.splice(start, deleteCount[, item1[, item2[, ...]]])
console.log('---- splice ----');
var x = [10, 20, 30, 40, 50];
var removed = x.splice(1, 2);
console.log(removed); // [ 20, 30 ]
// 4. sort
// ๋ฐฐ์ด์ ์์๋ฅผ ์ ์ ํ ์์น์ ์ ๋ ฌํ๊ณ ๋ฐฐ์ด์ ๋ฐํ
console.log('---- sort ----');
var x = [50, 30, 20, 40, 10];
x.sort();
console.log(x); // [ 10, 20, 30, 40, 50 ]
// 5. push: ๋ฐฐ์ด์ ์ถ๊ฐ w/ apply -> pop, shift, unshift
console.log('---- push, pop, shift, unshift ----');
var x = [10, 20, 30, 40, 50];
x.push(60);
console.log(x); // [ 10, 20, 30, 40, 50, 60 ]
x.pop();
console.log(x); // [ 10, 20, 30, 40, 50 ]
x.shift(); // shift: ๋ฐฐ์ด์์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ ๊ฑฐํ๊ณ , ์ ๊ฑฐ๋ ์์๋ฅผ ๋ฐํ
console.log(x); // [ 20, 30, 40, 50 ]
x.unshift(60); // ํ๋ ๋๋ ๊ทธ ์ด์์ ์์๋ฅผ ๋ฐฐ์ด์ ์์์ ์ ์ถ๊ฐํ๊ณ ๋ฐฐ์ด์ ์ ๊ธธ์ด(length)๋ฅผ ๋ฐํ
console.log(x); // [ 60, 20, 30, 40, 50 ]
// 6. <์ถ๊ฐ> find, findIndex(ES6)
// find: ์ ๊ณต๋ ํ
์คํธ ํจ์๋ฅผ ๋ง์กฑํ๋ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๋ฐํ
// findIndex: ์ ๊ณต๋ ํ
์คํธ ํจ์๋ฅผ ๋ง์กฑํ๋ ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ ๋ํ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ
console.log('---- find, findIndex(ES6) ----');
var x = [10, 20, 30, 40, 50];
var val = x.find((a) => a == 10);
console.log('val ' + val); // 10
var idx = x.findIndex((a) => a == 10);
console.log('index ' + idx); // 0