[JavaScript] ๋ด์ฅ ๊ฐ์ฒด - Array
์๋ฐ์คํฌ๋ฆฝํธ ๋ด์ฅ ๊ฐ์ฒด์๋ ์น ๋ฌธ์์ ๊ณ์ธต ๊ตฌ์กฐ์ ์๊ด ์์ด ๋ํ๋ผ ์ ์๋ ๊ฐ์ฒด๊ฐ ์๋ค.
Array ๊ฐ์ฒด์ Date ๊ฐ์ฒด๊ฐ ๋ํ์ ์ด๋ค.
Array ๊ฐ์ฒด
์ผ๋ จ์ ๊ฐ๋ค์ ์ ์ฅํ ์ ์๋ ๋ฐฐ์ด์ ์์ฑํ ๋ ์ฌ์ฉํ๋ ๋ฆฌ์คํธ ํํ์ ๊ณ ์์ค ๊ฐ์ฒด
๋ฐฐ์ด์ ๊ฐ ์์๋ ๋ฐฐ์ด์ ์ด๋ฆ๊ณผ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ์ฌ ์ฌ์ฉ
ํ์ ์ด ๊ณ ์ ์ โ ๊ฐ์ ๋ฐฐ์ด์ ์๋ ์์์ ํ์ ์ด ์๋ก ๋ค๋ฅผ ์ ์์
ํฌ๊ธฐ๊ฐ ๋์ ๋ฐฐ์ด์ ์์ฑํ๊ฑฐ๋ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋์ด๋ ํฌ๊ธฐ๋ฅผ ๋ค์ ๋ณ๊ฒฝํ ํ์ ์์
Array ๊ฐ์ฒด ์ธ์คํด์ค ๋ง๋ค๊ธฐ
Array() ์์ฑ์๋ฅผ ์ด์ฉํ ๋ฐฐ์ด ์์ฑ
var b1 = new Array();
var b2 = new Array(5); //ํฌ๊ธฐ๊ฐ 5์ธ ๋ฐฐ์ด. ๋ชจ๋ ์์๋ undefined ๊ฐ์ ๊ฐ์ง
var b3 = new Array(3, 5); // ์์ฑ์์ ์ธ์๊ฐ ๋๊ฐ ์ด์์ด๋ฉด ์ด๊ธฐ๊ฐ. ํฌ๊ธฐ๊ฐ 2์
๋ฐฐ์ด์ ์ ์ธ๊ณผ ์ด๊ธฐํ
var a = [ 10, 20, 30 ];
concat | ๊ธฐ์กด ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํด ์๋ก์ด ๋ฐฐ์ด ๋ง๋ฆ |
every | ๋ฐฐ์ด์ ๋ชจ๋ ์์๊ฐ ์ฃผ์ด์ง ํจ์์ ๋ํด ์ฐธ์ด๋ฉด trUe๋ฅผ ๋ฐํํ๊ณ ๊ทธ๋ ์ง ์์ผ๋ฉด false๋ฅผ ๋ฐํ |
filter | ๋ฐฐ์ด ์์ ์ค์์ ์ฃผ์ด์ง ํํฐ๋ง ํจ์์ ๋ํด true์ธ ์์๋ง ๊ณจ๋ผ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ฆ |
fortach | ๋ฐฐ์ด ์์ ์ค์์ ์ฃผ์ด์ง ํํฐ๋ง ํจ์์ ๋ํด true์ธ ์์๋ง ๊ณจ๋ผ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ฆ |
indexof | ์ฃผ์ด์ง ๊ฐ๊ณผ ์ผ์นํ๋ ๊ฐ์ด ์๋ ๋ฐฐ์ด ์์์ ์ฒซ ์ธ๋ฑ์ค๋ฅผ ์ฐพ์ |
join | ๋ฐฐ์ด ์์๋ฅผ ๋ฌธ์์ด๋ก ํฉ๋๋ค. ์ด๋ ๊ตฌ๋ถ์๋ฅผ ์ง์ |
push | ๋ฐฐ์ด์ ๋งจ ๋์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐํ ํ ์๋ก์ด Length๋ฅผ ๋ฐํ |
unshift | ๋ฐฐ์ด์ ์์ ๋ถ๋ถ์ ์๋ก์ด ์์๋ฅผ ์ถ๊ฐ |
pop | ๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ๊บผ๋ด ๊ทธ ๊ฐ์ ๊ฒฐ๊ณผ๋ก ๋ฐํ |
shift | ๋ฐฐ์ด์์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๊บผ๋ด ๊ทธ ๊ฐ์ ๊ฒฐ๊ณผ๋ก ๋ฐํ |
splice | ๋ฐฐ์ด์ ์์๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ |
slice | ๋ฐฐ์ด์์ ํน์ ํ ๋ถ๋ถ๋ง ์๋ผ๋ |
reverse | ๋ฐฐ์ด์ ๋ฐฐ์น ์์๋ฅผ ์ญ์์ผ๋ก ๋ฐ๊ฟ |
sort | ๋ฐฐ์ด ์์๋ฅผ ์ง์ ํ ์กฐ๊ฑด์ ๋ฐ๋ผ ์ ๋ ฌ |
toString | ๋ฐฐ์ด์์ ์ง์ ํ ๋ถ๋ถ์ ๋ฌธ์์ด๋ก ๋ฐํ. ์ด๋ ๊ฐ ์์๋ ์ผํ(,)๋ก ๊ตฌ๋ถ |
๋ฐฐ์ด์ ์ํ
1) for๋ฌธ์ ์ด์ฉํ ์ํ
var arr = [2, 4, 6, , 8];
for(var i-0; i<arr.length; i++){
if (a[i]) {
console.log(a[i]); // 10 20 40
}
๋ฐฐ์ด์ ์์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ null, undefined, ๋น ์์๊ฐ ์๋์ง ํ์ธํ๊ณ ์ ์ธํด์ค์ผ ํจ
2) for ~ of๋ฌธ์ ์ด์ฉํ ์ํ
for (let n of a){ // ES6 ์ถ๊ฐ๋ ์ปฌ๋ ์
๋ฐ๋ณต ๊ตฌ๋ฌธ
console.log(n); // 10 20 30
}
for~of๋ฌธ์ ES6์ ์ถ๊ฐ๋ ์๋ก์ด ์ปฌ๋ ์ ์ ์ฉ ๋ฐ๋ณต ๊ตฌ๋ฌธ
<script type="text/javascript">
var a = [ 10, 20, , 40, 0 ];
// ๋ฐฐ์ด ์์ ์ฒ์๋ถํฐ ๋๊น์ง
for (let i = 0; i < a.length; i++) {
console.log(a[i]); // 10 20 undefined 40 0
}
console.log('-----------');
for (let i = 0; i < a.length; i++) {
if (a[i]) {
console.log(a[i]); // 10 20 40
}
}
console.log('-----------');
var b = [10,20, 30];
for (let n of b){ // ES6 ์ถ๊ฐ๋ ์ปฌ๋ ์
๋ฐ๋ณต ๊ตฌ๋ฌธ
console.log(n); // 10 20 30
}
console.log('-----------');
for (let n in b){ // ์ฒจ์๋ง ๋ฐํ
console.log(n); // 0 1 2
}
console.log('-----------');
for (let n in b){
console.log(b[n]); // 10 20 30
}
</script>
์์ ์ญ์
๋ง์ง๋ง ์์ ์ญ์
๋ฐฐ์ด์ length ์์ฑ ๊ฐ์ 1 ๊ฐ์ํ๋ฉด ๋ง์ง๋ง ์์๊ฐ ์ญ์ ๋จ
a.length = a.length - 1;
๋ชจ๋ ์์ ์ญ์
arr.lengh = 0;
๋ฐฐ์ด์ length ์์ฑ ๊ฐ์ 0์ผ๋ก ์ค์ ํ์ฌ ๋ชจ๋ ์์๊ฐ ์ญ์ ๋จ
pop() ๋ฉ์๋
๋ฐฐ์ด์ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๊ณ ๊ทธ ์์๋ฅผ ๋ฐํํ๋ฉฐ, ๋ฐฐ์ด์ ๊ธธ์ด๋ ์ค์ด๋ฆ
var arr = [2, 4, 6];
var n = arr. shift();
console.log(arr); // [4, 6]
console.log(n); // 2
delete ์ฐ์ฐ์๋ฅผ ์ด์ฉํด ์ญ์
delete๋ก ๋ฐฐ์ด์ ์์๋ฅผ ์ญ์ ํ๋ฉด ๋ฐฐ์ด์ ๊ธธ์ด๋ ๋ณํ์ง ์์ผ๋ฉฐ undefined ํ ๋น
var arr = [2, 4, 6];
delete(arr[0]);
console.log(arr[0]);
splice()
๋ฐฐ์ด์ ๊ธฐ์กด ์์๋ฅผ ์ญ์ ๋๋ ๊ต์ฒดํ๊ฑฐ๋ ์ ์์๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐฐ์ด์ ๋ด์ฉ์ ๋ณ๊ฒฝ
var arr = [2,4,6,8];
arr.splice(1, 0, 3); // ์ถ๊ฐ
console.log(arr); // [2,3,4,6,8]
arr.splice(4, 1, 9); // 4๋ฒ์งธ ์ธ๋ฑ์ค์ 1๊ฐ์ ์์๋ฅผ 9๋ก ๋ณ๊ฒฝ
console.log(arr); // [2,3,4,6,9]
start: ๋ฐฐ์ด์ ๋ณ๊ฒฝ์ ์์ํ ์ธ๋ฑ์ค, ๋ฐฐ์ด์ ๊ธธ์ด๋ณด๋ค ํฐ ๊ฐ์ด๋ฉด ๋ฐฐ์ด์ ๊ธธ์ด๋ก ์ค์
delete: ์ ํ์ฌํญ. ์ ๊ฑฐํ ์์์ ์
indexOf()
๋ฐฐ์ด์์ ์ง์ ๋ ์์๋ฅผ ์ฐพ์ ์ ์๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํํ๊ณ , ์กด์ฌํ์ง ์์ผ๋ฉด -1์ ๋ฐํ
lastIndexOf()
์ง์ ๋ ์์๊ฐ ๋ฐฐ์ด์์ ๋ฐ๊ฒฌ๋๋ฆฌ ์ ์๋ ๋ง์ง๋ง ์ธ๋ฑ์ค๋ฅผ ๋ฐํ. ์กด์ฌํ์ง ์์ผ๋ฉด -1์ ๋ฐํ
join()
๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ฐ๊ฒฐํด ํ๋์ ๋ฌธ์์ด๋ก ๋ง๋ฆ
reverse()
๋ฐฐ์ด์ ์์๋ฅผ ๋ฐ์
sort()
๋ฐฐ์ด์ ์์๋ฅผ ์ ์ ํ ์์น์ ์ ๋ ฌํ ํ ๊ทธ ๋ฐฐ์ด์ ๋ฐํ
forEach()
๋ฐฐ์ด์ ์ํํ๋ฉฐ ๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํ์ฌ ์ธ์๋ก ์ฃผ์ด์ง ์ฝ๋ฐฑ ํจ์๋ฅผ ์คํํจ