✍️ 배열 메서드들 정말 자주 쓰는데, 매번 인자 헷갈려서 찾아보는 것이 번거로워 이번 기회에 정리해 보았다. 추가로 몰랐었던 특징들도 같이 정리 해 보았다.
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
기본형 - 특정 위치에서 특정 갯수의 요소 제거
var removed = myFish.splice(3, 1);
// myFish : ["angel", "clown", "drum", "sturgeon"]
// removed : ["mandarin"]
제거 요소 없이 요소 추가
var removed = myFish.splice(2, 0, 'drum');
// myFish : ["angel", "clown", "drum", "mandarin", "sturgeon"]
// removed : []
뒤에서 시작한 순서에서 요소 제거
var removed = myFish.splice(-2, 1);
// myFish : ["angel", "clown", "sturgeon"]
// removed : ["mandarin"]
인덱스 포함 이후 모든 요소 제거
var removed = myFish.splice(2);
// myFish : ["angel", "clown"]
// removed : ["mandarin", "sturgeon"]
arr.slice([begin[, end]])
기본형 - 특정 인덱스 부터 인덱스 까지 복사, 새 배열 반환
var myFish = ['angel', 'clown', 'mandarin', 'sturgeon'];
var removed = myFish.slice(2, 3);
// myFish : ['angel', 'clown', 'mandarin', 'sturgeon']
// removed : ['mandarin', 'sturgeon']
유사 배열 Array로 변환
function list() {
return Array.prototype.slice.call(arguments);
}
let list1 = list(1, 2, 3);
console.log(list1); // [1, 2, 3]
array.concat([value1[, value2[, ...[, valueN]]]])
기본형 - 배열에 요소 추가 하기
var myFish = ['angel', 'clown', 'mandarin'];
var added = myFish.concat('sturgeon');
// myFish : ['angel', 'clown', 'mandarin']
// added : ['angel', 'clown', 'mandarin', 'sturgeon']
배열에 배열 요소 추가
let arr = [1, 2];
console.log(arr.concat([3, 4]) ) // [1,2,3,4]
배열에 객체 요소 추가
let arr = [1, 2];
let arrayLike = {
0: "something",
length: 1
};
console.log( arr.concat(arrayLike) ); //[1, 2, {…}]
```jsx
let arr = [1, 2];
let arrayLike = {
0: "something",
1: "else",
[Symbol.isConcatSpreadable]: true,
length: 2
};
console.log( arr.concat(arrayLike) ); // 1,2,something,else
```
arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])
const items = ['item1', 'item2', 'item3'];
const copy = [];
items.forEach(function(item){
copy.push(item);
});
arr.indexOf(searchElement[, fromIndex])
arr.lastIndexOf(searchElement[, fromIndex])
var array = ['a', 'b', 'a', 'c', 'a', 'd'];
var idx = array.indexOf('a');
var lidx = array.lastIndex('a');
console.log(idx) // 0 - 처음 일치하는 요소 해당 인덱스 값 반환
console.log(lidx) // 4 - 뒤에서부터 시작해서 처음 일치하는 요소 해당 인덱스값 반환
arr.includes(valueToFind[, fromIndex])
[1, 2, 3].includes(2); // true
[1, 2, NaN].includes(NaN); // true
arr.find(callback(element[, index[, array]])[, thisArg])
let fruits = [
{id: 1, name: "apple"},
{id: 2, name: "banana"},
{id: 3, name: "mango"}
];
let fruit = fruits.find(item => item.id == 3);
alert(fruit.name); // mango
arr.findIndex(callback(element[, index[, array]])[, thisArg])
arr.filter(callback(element[, index[, array]])[, thisArg])
var array = [1,2,3,4,5];
array.filter(function(x) {
return x % 2 === 0;
}); // [2,4]
arr.sort([compareFunction])
arr.sort(function(a, b) {
return a - b;
});
arr.sort(function(a, b) {
return b - a;
});
arr.sort(function(a, b) {
if(a < b) return 1;
if(a > b) return -1;
if(a === b) return 0;
});
arr.reverse()
const a = [1, 2, 3];
console.log(a); // [1, 2, 3]
a.reverse();
console.log(a); // [3, 2, 1]
arr.join([separator])
var a = ['바람', '비', '불'];
var myVar1 = a.join(); // myVar1에 '바람,비,불'을 대입
var myVar2 = a.join(', '); // myVar2에 '바람, 비, 불'을 대입
var myVar3 = a.join(' + '); // myVar3에 '바람 + 비 + 불'을 대입
var myVar4 = a.join(''); // myVar4에 '바람비불'을 대입
every((element, index, array) => { ... } )
const checkboxes = document.querySelectorAll('input[type=checkbox]')
const isThatAllChecked = Array.prototype.every.call(checkboxes, (x)=> {
x.getAttribute("checked") === true
})
alert(isThatAllChecked);
some((element, index, array) => { /* … */ })
const fruits = ["apple", "banana", "mango", "guava"];
function checkAvailability(arr, val) {
return arr.some((arrVal) => val === arrVal);
}
checkAvailability(fruits, "kela"); // false
checkAvailability(fruits, "banana"); // true
Array.isArray(obj)
alert(typeof {}); // object
alert(typeof []); // object
alert(Array.isArray({})); // false
alert(Array.isArray([])); // true