array.prototype.every()

every() 메서드는 주어진 함수를 모두 통과하는지 확인하고, 불린(true, false)로 반환합니다.
*callback (필수): 각 요소에 대해 호출할 함수로, 다음 매개변수를 사용할 수 있습니다.
- currentValue (필수): 현재 처리 중인 요소의 값.
- index (선택적): 현재 처리 중인 요소의 인덱스.
- array (선택적): every()를 호출한 배열.
*thisArg (선택적): 콜백 함수 내에서 this로 사용할 객체를 지정합니다.
*thisArg는 콜백 함수 내에서 this를 명시적으로 설정 가능하다.

{
    // 기본 구문
    array.every(callback(currentValue[, index[, array]])[, thisArg])

    // 1. 모든 요소가 조건을 만족하는 경우
    {
        const numbers = [2, 4, 6, 8, 10];
        const allEven = numbers.every((number) => number % 2 === 0);

        console.log(allEven);   // true (모든 요소가 짝수)
    }

    // 2. 하나라도 조건을 만족하지 않는 경우
    {
        const numbers = [2, 4, 7, 8, 10];
        const allEven = numbers.every((number) => number % 2 === 0);
    
        console.log(allEven);   // false (하나 이상의 요소가 홀수)
    }

    // 3. thisArg를 사용한 예제
    {
        const numbers = [1, 2, 3, 4, 5];
        const threshold = 3;
        
        const allGreaterThanThreshold = numbers.every(function(number){
            return number > this.threshold;
        }, { threshold });

        console.log(allGreaterThanThreshold);   // false (3보다 작은 요소가 있음)
    }
}

1. 모든 요소가 짝수인지 확인하기: 배열 numbers의 모든 요소가 짝수이므로 true를 반환합니다.
2. 모든 요소가 짝수인지 확인하기: 배열 numbers의 요소 중 하나 이상이 짝수가 아니라 false를 반환합니다.
3. 모든 요소가 임계값(threshold)보다 큰지 확인하기: 콜백 함수는 number 매개변수를 가지고 있으며 해당 요소의 값을 나타냅니다.
콜백 함수 내부에서 return number > this.threshold;와 같은 조건을 사용하여 각 요소가 threshold보다 큰지를 확인합니다.
this.threshold는 현재 컨텍스트(여기서는 { threshold } 객체)에 있는 threshold 변수를 가리킵니다.
every()의 두 번째 인수로 객체 { threshold }를 전달하여 콜백 함수 내에서 this를 사용할 때 this가 { threshold } 객체를 참조하도록 설정합니다.
everyGreaterThanThreshold 변수에 every()의 반환 값을 할당합니다. 이 값은 배열의 모든 요소가 threshold보다 크면 true, 그렇지 않으면 false가 됩니다.
마지막으로 console.log(allGreaterThanThreshold);를 사용하여 결과를 출력합니다. 배열 numbers에는 3보다 작은 요소가 있기 때문에 이 코드의 결과는 false입니다.

21. array.prototype.join()

join() 메서드는 배열 요소들을 하나의 문자열로 합쳐주는 역할을 합니다.
join()는 주어진 구분자(separator)를 사용하여 배열의 요소들을 연결하고, 그 결과를 하나의 문자열로 반환합니다.
배열의 요소들을 문자열로 합칠 때 주로 사용되며, CSV 파일 형식이나 URL 파라미터 생성 등 다양한 상황에서 유용하게 쓰입니다.

{
    const fruits = ["apple", "banana", "cherry"];
    const result = fruits.join(", ");

    console.log(result);    // "apple, banana, cherry"
}

22. array.prototype.pop()

pop() 메서드는 배열에서 마지막 요소를 제거하고 그 요소를 반환하는 배열 메서드입니다.
pop()는 배열을 수정하며, 제거한 요소를 반환합니다.

{
    const fruits = ["apple", "banana", "cherry"];
    const removedFruit = fruits.pop();

    console.log(removedFruit);  // "cherry"
    console.log(fruits);        // ["apple", "banana"]
}

23. array.prototype.push()

push() 메서드는 배열에 새로운 요소를 추가합니다.
push()는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다.

{
    const fruits = ["apple", "banana"];
    const newLength = fruits.push("cherry", "date");

    console.log(newLength); // 4 (배열의 새로운 길이)
    console.log(fruits);    // ["apple", "banana", "cherry", "date"]
}