.some() 및 .every() 배열 메서드를 사용하여 더 깔끔한 JavaScript 코드 작성

5015 단어 javascriptbeginners
깨끗하고 읽기 쉬운 코드를 작성하는 것이 중요합니다. 특히 다른 사람들과 함께 일할 때만 그런 것은 아닙니다. 이 기사에서는 잘 알려지지 않은 배열 방법.some().every()을 사용하여 다음 프로젝트에서 훌륭하고 읽기 쉬운 코드를 작성하는 방법을 알려 드리겠습니다.

그들은 어떻게 작동합니까?



두 기능 모두 비슷한 방식으로 작동합니다. 그들이 하는 일은 배열의 모든 항목을 반복하고 함수(개발자가 정의한)가 일부 또는 모든 항목에서 true를 반환하는지 확인하는 것입니다.

이에 대한 좋은 사용 사례는 주어진 배열에 대해 어떤 것이 참(또는 거짓)인지 확인해야 하는 상황입니다.



다음 배열을 가정해 보겠습니다.

const people = [
    { name: 'John', age: 47 },
    { name: 'Martha', age: 89 },
    { name: 'Edward', age: 31 },
    { name: 'Michele', age: 18 }
];


모든



배열의 모든 사람들이 법적 연령(>= 18세) 이상인지 확인하려면 forEach를 사용하여 다음 코드를 작성할 수 있습니다.

let allAboveAge = true // assume they all are above age
people.forEach(person => { // iterate over every item
    if(person.age < 18) { // check if below age
        allAboveAge = false // at least one is not above age
    }
})


위의 코드는 다른 개발자가 쉽게 읽을 수 없기 때문에 처음에는 이해하기 어려울 수 있습니다. 그들은 먼저 당신이 하려는 일의 논리를 파악해야 합니다.
.every() 를 사용하여 동일한 작업을 수행하려면 읽기 쉬운 한 줄의 코드로 수행할 수 있습니다.

const allAboveAge = people.every(person => person.age >= 18)

.every() -method에 전달하는 함수는 결과적으로 배열의 모든 항목에 대해 true가 되어야 하는 결과를 제공해야 합니다. (이 예에서 person는 주어진 순간에 반복되는 항목입니다)

약간


.some().every() 와 매우 유사하게 작동합니다. 유일한 차이점은 모든 항목에 대해 명령문이 true 인지 확인하는 대신 일부(적어도 하나!) 항목이 true 인지 확인한다는 것입니다.

따라서 배열에 연령 이상의 사람이 한 명 이상 포함되어 있는지 확인하려면 .some() 메서드를 사용하여 다음 명령문으로 확인할 수 있습니다.

const oneOrMoreAboveAge = people.some(person => person.age >= 18)


요약



보시다시피, 두 메서드는 호출된 메서드를 교환하기만 하면 되는 방식으로 아름답게 유사하게 작동하고 나머지는 동일하게 유지될 수 있습니다.

이 두 가지 방법은 결과적으로 Boolean가 있는 항목에 대해 배열을 테스트하려는 경우 편리한 작은 도구입니다.

적용되는 다음 프로젝트에서 사용하거나 현재 프로젝트에서 코드를 리팩터링하는 방법을 찾으면 이 방법을 통해 훨씬 더 멋지고 읽기 쉬운 코드를 얻을 수 있습니다.

Unsplash의 Frank Vessia 사진

좋은 웹페이지 즐겨찾기