
배열은 연관된 데이터를 모아서 통으로 관리하기위해 사용된다.
여러가지 데이터를 담을 수 있다. 그러나 보통 한가지 타입만 담는것이 일반적이다.
코드 📄
const arr= [1, 2, 3];
const arr =new Array(3); // arr: [3 empty items]
const arr2 = new Array(1, 2, 3); // arr2: [1,2,3]
const arr = Array.of(1,2,3);
console.log(arr) ; //[1,2,3]
유사 배열 객체(HTMLCollection,nodeList, arguments함수) 또는 이터러블 객체를 변환하여 새로운 배열 생성
Array.from(arrayLike[, mapFn[, thisArg]])
유사 배열 객체 반환
코드 📄
const arrayLike = { 0: 'a', 1: 'b', 2: 'c', length: 3 };
const array = Array.from(arrayLike);
console.log(array); // ['a', 'b', 'c']
이터러블 객체 반환
코드 📄
const str= "Hello";
const array= Array.from(str);
console.log(array); // ['H', 'e', 'l', 'l', 'o']
맵핑함수 사용하여 반환
코드 📄
const array = Array.from([1, 2, 3], x => x * 2);
//맵핑함수는 배열의 각 요소에 대해 호출되며, 새 배열을 생성
console.log(array); // [2, 4, 6]
배열 메소드에서 반환값을 구성할 때 사용되는 배열의 생성자를 반환시켜준다.
구문
Array[Symobl.species]; // [Function: Array]
Array 객체에 대한 기본 생성자를 반환한다.
코드 📄
class Array{
static get [Symbol.species](){
return this;
}
}
배열의 길이를 읽는 Array 객체의 프로퍼티
코드 📄
let arr= [1,2,3,4,5];
arr.length =2; // 2로 쓰기
console.log(arr)//[1,2]
arr.length=5;
console.log(arr); // // [ 1, 2, <3 empty items> ]
인자로 들어온 값이 배열이 맞는지 true, false 반환
순회가능 , 유사배열 객체에서 얕게 복사된 새로운 Array 인스턴스를 만든다.
mapFn은 요소와 인덱스로 이루어져 있다.
코드 📄
function func(){
return Array.from(arguments);
}
console.log(func(1,2,3));
인자의 갯수, 유형에 상관없이 가변인자를 갖는 새 Array 인스턴스를 만든다.
코드 📄
console.log(Array.of(1));
console.log(Array.of(1,2,3,4,5));
순회 가능 프로토콜을 구현하는 메소드로 배열의 인덱스 값을 산출하는 새 Array 인스턴스를 반환한다.
Array.prototype.values 와 동일한 값을 반환한다.
구문
array[Symbol.iterator]()
코드 📄
function func(item){
const iterator1 =item[Symbol.iterator];
if(typeof iterator1 !=='function'){
console.log(item, '넌 순회가능하지 않아');
return;
}
for(const value of item){
console.log(value);
}
}
func('abcd');
배열안에 특정 아이템이 있는지 체크해 true,false 반환
코드 📄
const arr =[1,2,3,4,5];
console.log(arr.includes(3)); // true
특정 item의 인데스 위치를 찾아 반환
코드 📄
const fruit =['apple','banana','orange'];
console.log(fruit.indexOf('apple'); // 0
indexOf와 검색을 끝에서부터 시작한다는 점만 다르다.
배열의 모든 요소를 인수로 전달받은 구분자로 구분해 문자열로 반환한다. 기본 구분자(,)
코드 📄
let arr = [1,2,3,4,5];
let arr2=arr.join(' ');
console.log(arr2);// '1 2 3 4 5'
push() : 배열 끝에 요소 추가하고 배열길이를 return
unshift() : 배열 앞에 요소 추가하고 배열길이를 return
코드 📄
const animals =['cat','dog','tiger','lion'];
console.log(animals.push('monkey')); // 5
console.log(animals); //['cat','dog','tiger','lion',"monkey"];
console.log(animals.unshift('bear')); // 6
console.log(animals); //['cat','dog','tiger','lion',"monkey","bear"];
pop() : 요소를 끝에서 제거하고 제거한 요소 반환
shift() : 배열 앞 요소 제거하고 제거한 요소 반환
코드 📄
console.log(animals.pop()); // bear
console.log(animals); // ['cat','dog','tiger','lion',"monkey"]
console.log(animals.shift()); // cat
console.log(animals);//['dog','tiger','lion',"monkey"]
원하는 요소를 중간에 추가하거나 삭제할 수 있다.
코드 📄
let arr= ["I","study","JavaScript","right","now"];
arr.splice(0,3,"Let's","dance"); // index 0부터 3개 삭제하고 뒤에 요소들 추가
console.log(arr) // ["Let's", "dance", "right", "now"]
배열을 잘라 새로운 배열을 만든다.
slice([start],[end]);
코드 📄
let arr = ["t", "e", "s", "t"];
arr.slice(0,2); // t e
arr.slice(-2) // s t 인덱스번호가 -2인 요소~끝까지
여러개의 배열을 붙여 새로운 배열을 반환한다.
코드 📄
let arr = [1,2];
arr.concat([3,4],5,6); // 1,2,3,4,5,6
배열의 순서를 거꾸로 만들어 새로운 배열을 반환한다.
코드 📄
let arr= [1,2,3,4,5];
let arr2= arr.reverse();
console.log(arr2); // [5,4,3,2,1]
인덱스 범위 내에 있는 모든 요소를 정적 값으로 변경하고 수정된 배열을 반환한다.
코드 📄
const arr= [1,2,3,4,5];
arr.fill(6,0,3);
console.log(arr); // [ 6, 6, 6, 4, 5 ]
배열의 하위 배열 요소가 지정된 깊이까지 풀린다음 연결된 새 배열을 생성한다.
코드 📄
const arr= [1,2,3,[4,5],[[6,7,8]]];
console.log(arr.flat(1));
// [ 1, 2, 3, 4, 5, [ 6, 7, 8 ] ]
console.log(arr.flat(2));
/*
[
1, 2, 3, 4,
5, 6, 7, 8
]
*/
인자에있는 콜백함수를 적용하고 한단계 평탄화된 새 배열을 반환한다.
코드 📄
const arr= [1,2,3,4,5];
console.log(arr.flatMap((item)=>[item,item*2]));
/*
[
1, 2, 2, 4, 3,
6, 4, 8, 5, 10
]
*/