.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 사진
Reference
이 문제에 관하여(.some() 및 .every() 배열 메서드를 사용하여 더 깔끔한 JavaScript 코드 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/themarcba/write-cleaner-javascript-code-with-some-and-every-array-methods-bmb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음 배열을 가정해 보겠습니다.
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 사진
Reference
이 문제에 관하여(.some() 및 .every() 배열 메서드를 사용하여 더 깔끔한 JavaScript 코드 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/themarcba/write-cleaner-javascript-code-with-some-and-every-array-methods-bmb
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(.some() 및 .every() 배열 메서드를 사용하여 더 깔끔한 JavaScript 코드 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/themarcba/write-cleaner-javascript-code-with-some-and-every-array-methods-bmb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)