array의 properties prototype 이란 해당 객체의 원형 객체로 메서드가 명시되어 있고, 새로운 기능을 만들어서 내장시킬 수 있다. 콘솔창에는 proto 로 표시된다.
배열이나 객체의 속성을 해체하여 그 값을 개별 변수에 담을 수 있게 하는 자바스크립트 표현식, const에서는 작동할 수 없다.
let a, b, rest;
[a, b] = [10, 20];
> rest
undefined
> a
10
> b
20전개 연산자 표현식은 2개 이상의 인수(함수 호출용)나 2개 이상의 요소(배열 리터럴 용) 또는 2개 이상의 변수가 예상되는 곳에 확장될 수 있게 한다.
- 배열을 함수의 인수로 사용
function myFunction(x, y, z) {}
var args = [1, 2, 3];
myFunction(...args);
- 배열 리터럴
var parts = ['shoulders', 'knees'];
var lyrics = ['head', ...parts, 'and', 'toes'];
> ["head", "shoulders", "knees", "and", "toes"]인자가 배열인지 판별한다. true 또는 false 값 반환
Array.isArray([]);
> true
Array.isArray(new Array(3));
> true인자를 값으로 갖는 배열을 생성한다.
Array.of(3);
> [3]
Array.of(1, 2, 3);
> [1, 2, 3]
Array(3); //length값이 3인 빈 배열을 생성한다.
> [ , , ,]
Array(1, 2, 3);
> [1, 2, 3]인자로 주어진 배열이나 값들을 기존 배열과 합쳐 새로운 배열로 반환한다.
const array1 = [1];
const array2 = [2];
array1.concat(array2);
> [1, 2]배열안의 '모든 요소'가 판별함수를 통과하는지 테스트한다. 빈배열에서는 무조건 true를 반환한다.
function checking(arrayValues){
return arrayValues < 5;
}
const array1 = [1, 2, 3, 4, 5];
array1.every(checking);
> false //모두 통과해야 true배열에 지정한 시작 인덱스 부터 끝 인덱스 /전까지 정적인 값으로 채운다. array.fill(정적인 값, 시작 인덱스, 끝 인덱스)
const array1 = [1, 2, 3, 4];
array1.fill(6, 0, 3);
> [6, 6, 6, 4]
array1;
[6, 6, 6, 4] //배열 변경됨주어진 판별함수를 만족하는 "첫번째 요소"의 값을 반환. 요소가 없으면 undefined 반환.
주어진 판별함수를 만족하는 배열의 "첫번째 요소에 대한 인덱스"를 반환한다.
배열의 각 요소를 판별 함수로 통과시켜 새로운 배열로 반환한다.
const fooArray = [1, 2, 3];
const boolean = fooArray.filter(x => {
return x < 4
});
console.log(boolean);
> [1, 2, 3]배열에 조건 요소가 들어있는지 검사하고 true 또는 false로 반환한다.
const array = [1, 2, 3];
console.log(array.includes(2));
> truestring.includes()는 문자열에 조건 요소가 들어있는지 검사하고 true 또는 false로 반환한다.
const string = 'javascript study is very interesting';
var word = 'study';
console.log(`The word "${word}" ${string.includes(word)? 'is' : 'is not'} in the string.`);
> The word "study" is in the string.가지고 있는 배열의 모든 요소를 함수로 실행시켜 값을 반환하여 그 값을 모아 새로운 배열을 만들어 반환시킨다.
const fooArray = [1, 2, 3];
const doubles = fooArray.map(x => {
return x * 2
});
console.log(dougles);
> [2, 4, 6]왼쪽 요소에서 오른쪽 요소를 누적합산하여 단일 값으로 반환한다.
const array = [1, 2, 3, 4, 5];
const reducer = (paramA, paramB) => {
return paramA + paramB
};
console.log(array.reduce(reducer));
console.log(array.reduce(reducer, 5)); //초기값 5;
> 15
> 20왼쪽 요소와 오른쪽 요소를 비요하여 조건에 따라 해당 배열을 재정렬한다. 새로운 배열로 반환하는 것이 아닌, 해당 배열을 직접 재정렬한다.
var numbers = [4, 2, 5, 1, 3];
numbers.sort(function(a, b) {
return a - b; // 오름차순 정렬
});
console.log(numbers);
> [1, 2, 3, 4, 5]
return b - a는 내림차순
if( a > b )와 같이 비교연산의 경우 조건에 만족했을 때,
return값으로 -1(음수)이면 a를 b보다 낮은 색인으로 정렬
return값으로 1(양수)이면 a를 b보다 높은 색인으로 정렬배열 안의 요소들을 판별 함수로 테스트하여 "하나라도" 통과되면 true, 아니면 false로 반환한다. 호출한 배열을 변형하지 않는다.
배열 안의 "모든" 요소가 판별 함수를 통과하거나 빈 배열일 경우 true를 반환한다. 호출한 배열을 변형하지 않는다.