index : 배열은 순서가 있는 값이고 순서는 인덱스라고 부른다. 순서는 0부터 센다. element : 배열의 값을 요소라고 하고 쉼표로 구분한다..length : 배열의 길이를 알려면 length를 사용하면 된다. let arr = ['suri', 'masuri'];
arr[0]; // 배열의 요소 조회하기
arr[1] = 'leesuri'; // 배열의 요소 값 변경하기
arr[2] = 'very'; // 배열에 요소 추가하기
arr[3]; // undefined
arr.push('lovely'); // 배열 끝에 값을 추가한다.
arr.pop(); // 마지막 값을 삭제한다.
arr.unshift('creative', 'smart'); // 앞에 값을 추가한다.
arr.shift(); // 앞에 값을 삭제한다.
console.table(arr); // 배열을 표로 직관적으로 확인 가능
배열의 값은 bracket notation과 인덱스를 이용해 접근한다.
배열의 값 변경은 변수에 할당하는 것과 동일하다.
배열의 길이보다 긴 인덱스를 통해 접근하면 에러가 뜨지 않고 undefined를 리턴한다.
자바스크립트에서는(?) 배열의 기존 인덱스보다 더 큰 인덱스로 추가를 해도 에러를 띄우지 않고 값이 할당이 된다.
| unshift | shift | push | pop |
|---|---|---|---|
| 첫 번째 엘리먼트 | 첫 번째 엘리먼트 | 마지막 엘리먼트 | 마지막 엘리먼트 |
| 추가 | 제거 | 추가 | 제거 |
| 새 배열의 길이 리턴 | 제거한 요소 리턴 | 새 배열의 길이 리턴 | 제거한 요소 리턴 |
배열의 요소가 배열인 경우가 있다. 즉, 배열 안에 배열이 들어 있는 이중 배열에 대해 알아보자.
let arr = [[2, 3, 4], 5, 6];
arr[0]; // [2, 3, 4]
Array.isArray(arr[0]); // true
arr.join() vs str.split()
// 배열 -> 문자열
let arr = ['안녕', '정말', '반갑구나!'];
console.log(arr.join(" ")); // '안녕 정말 반갑구나!'
// 문자열 -> 배열
let words = "정말 좋은 날이야!";
console.log(words.split(" ")); // ['정말', '좋은', '날이야!']
console.log(words.split("")); // ['정', '말', ' ', '좋', '은', ' ', '날', '이', '야', '!']
arr.slice()
arr.splice()
arr.splice(제거 시작 인덱스, 제거 엘리먼트 수, 추가할 엘리먼트 1/2/3..)* reference site : https://im-developer.tistory.com/103
Array.isArray()
let words = ['안녕', '반가워', '이름은?'];
console.log(typeof words); // object
console.log(Array.isArray(words)); // true
indexOf() vs includes()
let words = ['life', 'is', 'Fun'];
words.indexOf('fun'); // -1 (없는 값이면 -1을 보여준다)
words.indexOf('life'); // 0 (인덱스를 보여준다)
console.log(words.indexOf('fun') !== -1) // 배열에 특정 엘리먼트가 있는지 검사하는 방법
// 유틸리티 함수 만들어보기
function hasElement(arr, el) {
return arr.indexOf(el) !== -1
}
console.log(hasElement(words, 'Fun')); // true
// 내장 함수 includes)
words.includes('Fun') // true
words.includes('hate') // false
array.concat(newArray)
let firstArray = [1, 2];
let secondArray = [1, '하이'];
let thirdArray = [];
firstArray.concat(secondArray, thirdArray); // [1, 2, 1, '하이']
* reference site : https://doesitmutate.xyz/
let arr = [1, '가', 2, '나', 3, '다', 4, '라', 5, '마', 6];
for (let i = 0; i < arr.length; i++) {
if (i % 2 === 0) {
arr[i] = `숫자 : ${arr[i]}`;
} else {
arr[i] = `문자 : ${arr[i]}`;
}
}
console.table(arr);
for (let el of arr) {
if (el > max) {
max = el;
}
}
for (let i = 0; i < arr.length; i++) {
if (maxElement < arr[i]) {
maxElement = arr[i];
}
}
return arr1.concat(arr2);return [...arr1, ...arr2] // const newArr = arr;
const newArr = arr.slice();
newArr.push(el);
return newArr;
let arr1 = [1, 2, 3, 4, 5];
let arr2 = ['가', '나', '다', '라', '마'];
let newArray = [];
let index1 = 0;
let index2 = 0;
for (let i = 0; i < arr1.length + arr2.length; i++) {
if (i % 2 === 0) {
newArray.push(arr2[index1]);
index1++;
} else {
newArray.push(arr1[index2]);
index2++;
}
}
console.table(newArray);