배열.some((요소, 인덱스, 배열) => 동작);
조건을 만족하는 요소가 1개이상 있으면 true
를 리턴한다.
const numbers = [1, 3, 5, 7, 9];
const someReturn = numbers.some((el, i) => {
console.log(i);
return el > 5;
}); // 0, 1, 2, 3 (조건을 만족하는 요소가 나올 때까지 순회한다.)
console.log(someReturn); //true
배열.every((요소, 인덱스, 배열) => 동작);
모든 요소가 조건을 만족하면 true
를 리턴한다.
즉, 조건을 만족하지 않는 요소가 1개라도 있으면 false
를 리턴하고 반복(순회)을 종료한다.
const everyReturn = numbers.every((el, i) => {
console.log(i);
return el > 5;
}); // 0 (조건을 만족하지 않는 요소가 나오면 종료)
console.log(everyReturn); // false
💡
[]
빈 배열에서는 반복 없이 바로some은 false
,every는 true
를 리턴한다.const empty = []; const emptySome = empty.some((el, i) => { console.log(`some: ${i}`); return el > 5; }); // 반복(순회)하지 않음 console.log(emptySome); // false const emptyEvery = empty.every((el, i) => { console.log(`every: ${i}`); return el > 5; }); // 반복(순회)하지 않음 console.log(emptyEvery); // true
배열.sort((a, b) => a-b)
배열을 유니코드에 정의된 문자열 순서에 따라 정렬한다.
const letters = ['D', 'C', 'E', 'B', 'A'];
const numbers = [1, 10, 4, 21, 36000];
letters.sort();
numbers.sort();
console.log(letters); // (5) ["A", "B", "C", "D", "E"]
console.log(numbers); // (5) [1, 10, 21, 36000, 4]
숫자를 오름차순 또는 내림차순으로 정렬하기 위해서는 콜백함수를 지정해주어야 한다.
콜백함수가 리턴하는 값이 0보다 작을 경우
, a가 b보다 앞에 오도록 정렬하고,
콜백함수가 리턴하는 값이 0보다 클 경우
, b가 a보다 앞에 오도록 정렬한다.
만약 0을 리턴하면, a와 b의 순서를 변경하지 않는다.
const numbers = [1, 10, 4, 21, 36000];
// 오름차순 정렬
numbers.sort((a, b) => a - b);
console.log(numbers); // (5) [1, 4, 10, 21, 36000]
// 내림차순 정렬
numbers.sort((a, b) => b - a);
console.log(numbers); // (5) [36000, 21, 10, 4, 1]
💡 메소드를 실행하는 원본 배열
의 요소들을 정렬한다.
즉, 한 번 정렬 후에는 정렬하기 전의 순서로 다시 되돌릴 수 없으니, 이전 배열이 필요한 경우 미리 다른 변수에 복사해두어야 한다.
배열.reverse();
원본 배열
의 요소들을 순서를 뒤집는다.
(배열을 복사하여 리턴하는 것이 아닌, 원본 배열을 뒤집는 것 주의)
별도의 파라미터가 존재하지 않고, 메소드를 호출해주기만 하면 배열의 순서가 뒤집힌다.
const letters = ['a', 'c', 'b'];
const numbers = [421, 721, 353];
letters.reverse();
numbers.reverse();
console.log(letters); // (3) ["b", "c", "a"]
console.log(numbers); // (3) [353, 721, 421]