Array method 정리
Array.splice
arr.splice(n(시작), m(개수)): 특정 요소 지움
let arr = [1, 2, 3, 4, 5];
arr.splice(1, 2);
console.log(arr);
arr.splice(n, m, x): 특정 요소 지우고 추가
let arr = [1, 2, 3, 4, 5];
arr.splice(1, 3, 100, 200);
console.log(arr);
arr.splice(n, m, x): 특정 요소 우고 추가
let arr = ["나는", "철수", "입니다"];
arr.splice(1, 0, "대한민국", "소방관");
console.log(arr);
arr.splice() : 삭제된 요소 반환
let arr = [1, 2, 3, 4, 5];
let result = arr.splice(1, 2);
console.log(arr);
console.log(result);
Array.slice
arr.slice() : n부터 m까지 반환
let arr = [1, 2, 3, 4, 5];
arr.slice(1, 4);
let arr2 = arr.slice();
console.log(arr2);
Array.concat
arr.concat(arr2, arr3 ..) : 합쳐서 새배열 반환
let arr = [1, 2];
arr.concat([3, 4]);
arr.concat([3, 4], [5, 6]);
arr.concat([3, 4], 5, 6);
Array.forEach
arr.forEach(fn) : 배열 반복
let users = ['Mike', 'Tom' , 'Jane'];
users.forEach(( item, index, arr) => {
}); Tom 1
Jane 2
users.forEach((name, index) => {
console.log(`${index+1}. ${name}`);
});
Array.indexOf / Array.lastindexOf
Array.indexOf() : 발견시 해당요소 반환 없으면 -1 반환
let arr = [1, 2, 3, 4, 5, 1, 2, 3]
arr.indexOf(3);
arr.indexOf(3, 3);
arr.lastindexOf(3);
Array.incluedes
Array.incluedes() : 포함하는지 확인
let arr = [1, 2, 3];
arr.includes(2);
arr.includes(8);
Array.find(fn) / Array.findindex(fn)
Array.find(fn) / Array.findindex(fn)
: indexOf 처럼 찾는다는 의미는 동일하지만 함수를 사용하여보다 복잡한 연산이 가능
** 첫번째 true 값만 반환하고 끝 만약 없으면 undefined를 반환 **
let arr = [1, 2, 3, 4, 5];
const result = arr.find((item)=>{
return item % 2 === 0;
});
console.log(result);
let userList = [
{ name : "Mike", age: 30 },
{ name : "Jane", age: 27 },
{ name : "Tom", age: 10 },
];
const result = userList.find((user) => {
if(user.age < 19){
return true;
}
return false;
});
console.log(result);
const result = userList.findIndex((user) => {
if(user.age < 19){
return true;
}
return false;
});
console.log(result);
Array.filter(fn)
Array.filter(fn) : 만족하는 모든 요소를 배열로 반환
let arr = [1, 2, 3, 4, 5, 6];
const result = arr.filter((item)=>{
return item % 2 === 0;
});
Array.reverse()
Array.reverse() : 역순으로 재정렬
let arr = [1, 2, 3, 4, 5, 6];
arr.reverse();
Array.map(fn)
Array.map(fn) : 함수를 받아 특정기능을 시행하고 새로운 배열을 반환
let userList = [
{ name : "Mike", age: 30 },
{ name : "Jane", age: 27 },
{ name : "Tom", age: 10 },
];
let newUserList = userList.map((user, index) => {
return Object.assign({], user, {
id: index +1,
isAdult : user.age > 19,
});
});
console.log(newUserList);
** 기존 배열은 변경된게 없음**
Array.join / Array.split
Array.join
let arr = ["나는", "철수", "입니다"];
let result = arr.join();
let result = arr.join(" ");
let result = arr.join(=);
console.log(result);
Array.split : 문자열을 받아서 배열로 반환
const users = "Mike,Jane,Tom,Tony";
const result = users.split(",");
console.log(result);
let str = "Hello, My name is Mike.";
const result = str.split("");
console.log(result);
Array.isArray()
Array.isArray : 배열 여부를 확인
let user = {
name : "Mike",
age: 30
};
let userList = ['Mike', 'Tom' , 'Jane'];
console.log(typeof user);
console.log(typeof userList);
console.log(Array.isArray(user));
console.log(Array.isArray(userList));
Array.sort
Array.sort : 배열 재정렬, 배열 자체가 변경되니 주의
let arr = [1, 5, 4, 2, 3];
arr.sort();
console.log(arr)
let arr = ["a", "c", "e", "d", "b"];
arr.sort();
console.log(arr)
let arr = [27, 8, 5, 13];
arr.sort();
console.log(arr)
let arr = [27, 8, 5, 13];
arr.sort((a, b) => {
return a - b;
});
console.log(arr)
Array.reduce
Array.reduce : 인수로 함수를 받음 (누적 계산값, 현재값) => { return 계산값 };
let arr = [1, 2, 3, 4, 5];
let result = 0;
arr.forEach((num) => {
result += num;
});
console.log(arr)
let arr = [1, 2, 3, 4, 5];
const result = arr.reduce((prev, cur)=>{
return prev + cur;
}, 0)
console.log(arr)
let userList = [
{ name : "Mike", age: 30},
{ name : "Tom", age: 10},
{ name : "Jane", age: 27},
{ name : "Sue", age: 26},
{ name : "Harry", age: 42},
{ name : "Steve", age: 60},
];
let result = userList.reduce((prev, cur) => {
if(cur.age > 19){
prev.push(cur.name);
}
return prev;
}, [])
console.log(result);
let result = userList.reduce((prev, cur) => {
return prev += cur.age;
}, 0);
console.log(result);
let result = userList.reduce((prev, cur) => {
if(cur.name.length === 3){
prev.push(cur.name);
}
return prev;
}, []);
console.log(result);