arr.push()
arr.pop()
arr.unshift()
arr.shift()
arr.reverse()
arr.sort()
arr.splice()
arr.concat()
arr.indexOf()
arr.lastIndexOf()
arr.join()
arr.slice()
arr.toString()
arr.forEach(콜백함수)
arr.map(콜백함수)
arr.filter(콜백함수)
arr.every(콜백함수)
arr.some(콜백함수)
arr.reduce(콜백함수)
[]
또는 new Array()
[]
사용을 권장
let arr = [];
let arr2 = new Array();
let arr3 = Array.of(10, 20, 30); // [10, 20, 30]
// 유사 배열의 데이터가 arr에 들어가고 arr은 진짜 배열이다
const arr = Array.from(유사 배열);
// spread operator를 사용해도 유사 배열을 배열로 변경 가능
const arr = [...유사 배열];
Array.from(arrayLike, mapFn?, thisArg?)
arrayLike: 유사 배열
mapFn: map 함수 (필수아님)
thisArg: (필수아님)
arr.length = 0;
let arr = [1, 2, 3, 4, 5];
arr.length = 0;
console.log('arr: ', arr); // []
arr.splice(n, m);
// n:시작, m:개수
let arr = [1, 2, 3, 4, 5];
let arr2 = arr.splice(1, 2);
console.log('arr: ', arr); // [1, 4, 5]
console.log('arr2: ', arr2); // [2, 3]
arr.splice(n, m, x);
// n:시작, m:개수, x:추가할 값(여러 개 가능)
let arr = [1, 2, 3, 4, 5];
let arr2 = arr.splice(1, 2, 100, 200);
console.log('arr: ', arr); // [1, 100, 200, 4, 5]
console.log('arr2: ', arr2); // [2, 3]
arr.slice(n, m);
// n~m까지 배열로 반환 (m전까지 반환)
let arr = [1, 2, 3, 4, 5];
let arr2 = arr.slice(1, 4);
console.log('arr: ', arr); // [1, 2, 3, 4, 5]
console.log('arr2: ', arr2); // [2, 3, 4]
arr.concat(arr, arr2, ...);
let arr = [1, 2, 3];
let arr2 = [10, 20, 30];
let arr3 = arr.concat(arr2);
console.log('arr: ', arr); // [1, 2, 3]
console.log('arr2: ', arr2); // [10, 20, 30]
console.log('arr3: ', arr3); // [1, 2, 3, 10, 20, 30]
arr.indexOf(x);
// x: 찾는 값
let arr = [1, 2, 3, 4, 5, 1, 2, 3];
let idx = arr.indexOf(2);
let idx2 = arr.indexOf(2, 4); // 두 번째 인자는 시작 index
console.log(idx); // 1
console.log(idx2); // 6
arr.includes( );
let arr = [1, 2, 3];
arr.includes(2) // true
arr.includes(5) // false
const letters = ['a', 'b', 'c', 'd', 'e'];
const includesC = letters.includes('c', 2); // true
const includesA = letters.includes('a', 2); // false
arr.find(콜백함수);
const arr = [10, 20, 30, 40, 50];
console.log(arr.find((item) => item > 30)); // 40
console.log(arr.find((item) => item > 100)); // undefined
arr.findIndex(콜백함수);
const arr = [10, 20, 30, 40, 50];
console.log(arr.findIndex((item) => item > 30)); // 3
console.log(arr.findIndex((item) => item > 100)); // -1
arr.filter(콜백함수);
arr.map(콜백함수);
arr.join( );
arr.split( );
let arr = [3, 1, 5, 2, 4];
arr.sort();
console.log(arr); // [1, 2, 3, 4, 5];
let arr = [31, 7, 29, 12];
arr.sort();
console.log(arr); // [12, 29, 31, 7]
두 번째 예제에서 정렬이 이상한 이유
: sort는 배열값을 문자로 인식해서 정렬하기 때문
그래서 인수를 함수로 받아서 실행해야 한다.
let arr = [31, 7, 29, 12];
arr.sort((x, y)=>{
return x - y;
});
console.log(arr); // [7, 12, 29, 31]
a > b
비교 값이 1이면, a가 먼저 배치a > b
비교 값이 -1이면, b가 먼저 배치a > b
비교 값이 0이면, a, b의 배치에 변화가 없음const newjeans = ["김민지", "팜하니", "다니엘", "강해린", "이혜인"];
// [ '김민지', '팜하니', '다니엘', '강해린', '이혜인' ]
console.log(newjeans);
// [ '강해린', '김민지', '다니엘', '이혜인', '팜하니' ]
console.log(newjeans.sort()); // ㄱ-ㅎ 순으로 정렬
// [ '강해린', '김민지', '다니엘', '이혜인', '팜하니' ]
console.log(newjeans.sort((x, y) => (x > y ? 1 : x < y ? -1 : 0))); // ㄱ-ㅎ 순으로 정렬
//[ '팜하니', '이혜인', '다니엘', '김민지', '강해린' ]
console.log(newjeans.sort((x, y) => (x > y ? -1 : x < y ? 1 : 0))); // ㅎ-ㄱ 순으로 정렬
arr.reduce(function(누적 계산값, 현재값){
retunr 누적 계산값 += 현재값;
}, 초기값) // 초기값은 옵션임
let info = [
{ name: 'kim', age: 23 },
{ name: 'lee', age: 52 },
{ name: 'park', age: 16 },
{ name: 'song', age: 37 },
{ name: 'chon', age: 29 },
{ name: 'yoon', age: 4 },
];
let newInfo = info.reduce((prev, cur) => {
if (cur.age < 19) {
prev.push(cur.name);
}
return prev;
}, [])
console.log(newInfo); // ['park', 'yoon']
const arr = [1, 2, 3, 4, 5];
typeof arr; // object
Array.isArray(arr); // true
true / false를 반환