[JavaScript] 자바스크립트의 배열 Array공부방2023. 1. 17. 11:49
Table of Contents
728x90
728x90
배열(Array)
자바스크립트에서 배열은 이름과 인덱스로 참조되는 정렬된 값의 집합으로 정의된다.
배열을 구성하는 각각의 값을 배열 요소element)라고 하며, 배열에서의 위치를 가리키는 숫자를 인덱스(index)라고 한다.
배열 생성
배열 요소의 타입이 고정되어 있지 않다.
배열 요소의 인덱스가 연속적이지 않아도 되며, 따라서 특정 배열 요소가 비어 있을 수도 있다.
Array객체로 다룬다.
const arr1 = new Array();
arr1[1] = 10;
arr1[3] = '이십';
console.log(arr1);
//다차원배열
let arr = [[0,1], [2,3], [4,5], [6,7]]
자바스크립트는 내장된 데이터 타입으로 다차원 배열을 제공하지 않는다.
자바스크립트에서는 모든 것이 객체이기 때문에 배열의 각 요소를 다시 배열로 정의해 중첩하는 식으로 다차원 배열을 구현하게 된다. 중첩 배열 형태인 것이다.
그렇기 때문에 다차원이 되면 배열 탐색 속도가 느려지고 언어적인 특성상 배열 요소 자체가 객체이다.
따라서 대량의 데이터 처리에 불리하기에 권장하지 않는다.
배열 생성
1. var arr = [배열요소1, 배열요소2,...]; // 배열 리터럴을 이용하는 방법
2. var arr = Array(배열요소1, 배열요소2,...); // Array 객체의 생성자를 이용하는 방법
3. var arr = new Array(배열요소1, 배열요소2,...); // new 연산자를 이용한 Array 객체 생성 방법
배열 순회
// 기본 for문
let data = [1, 2, 3 ];
for(let i = 0; i < data.length; i++){
console.log(i);
}
// for Each
let data = [1, 2, 3 ];
data.forEach(function(value){
console.log("valueis", value);
});
// For of
let data = [1, 2, 3 ];
for( let value of data ){
console.log( value);
}
// for in : 상위 객체의 함수가 출력될수 있기 때문에 조심해서 사용하도록 한다.
let data = [1, 2, 3 ];
for( let idx in data ){
console.log( data[idx]);
}
메서드
메서드 | 설명 |
push() | 배열의 가장 맨 뒤에 요소 추가 |
pop() | 배열의 가장 맨 뒤 요소 삭제 |
reverse() | 배열의 순서를 반대로 |
sort() | 오름차순 정렬 (문자열 기준) |
splice(start, del, item1......) | 기존 요소 제거 및 요소 추가 start INDEX부터 del만큼 제거, item이 있다면 item1, item2......추가 |
join() toString() |
모든요소를 하나의 문자열로 반환 join은 구분자 사용가능하며 기본값은 ',' |
slice(start, end) | start INDEX부터 end-1 INDEX까지의 배열 반환 |
concat() | 배열 뒤에 새로운 배열을 합침 |
map() | 기존의 배열을 콜백함수에 의해 새로운 배열을 만들 때 사용 |
filter() | 해당 배열의 모든 요소에 대하여 반복적으로 콜백함수를 실행 콜백함수의 조건의 대한 결과 값이 true인 요소들만을 새로운 배열에 담아 반환한다. |
every() | 배열 내 모든 요소들에 대한 조건이 모두 만족할 때 true를 반환 |
some() | 배열 내 모든 요소들에 대한 조건이 하나라도 만족할 때 true를 반환 |
reduce() reduceRight() |
배열의 모든 요소를 하나의 값으로 줄이기 위해 두 개의 인수를 전달받는 콜백함수 실행 reduce는 배열의 0번INDEX에서 마지막INDEX, reduceRight는 반대 |
entries() keys() values() |
entries() : 객체의 Key, Value값을 새로운 배열에 담는다 keys() : Key값만 values() : Value값만 |
//filter
var arr1=[1, -3, 10, 100, -20, 30];
var result=arr1.filter(function(ele){
return ele>10;
})
console.log(result); //[100, 30]
//every, some
var arr1=[1, -3, 10, 100, -20, 30];
var result=arr1.every(function(ele){
return ele>10;
})
console.log(result); //false
var result2=arr1.some(function(ele){
return ele>10;
})
console.log(result2); //true
//reduce, reduceRight
var arr1=[1, -3, 10, 100, -20, 30];
function minus(x,y){
return x-y;
}
console.log(arr1.reduce(minus)); //-116
console.log(arr1.reduceRight(minus)); //-58
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!