Computer >> 컴퓨터 >  >> 프로그래밍 >> JavaScript

JavaScript에서 _.where() 함수로 특정 조건과 일치하는 모든 요소 찾는 방법

자바스크립트(JavaScript)에는 개발 생산성을 높여 주는 다양한 유틸리티 라이브러리가 존재하며, 그중 underscore.js는 배열과 객체를 손쉽게 다룰 수 있게 해주는 대표적인 라이브러리입니다. underscore.js가 제공하는 여러 함수 중 _.where()는 배열 안에서 특정 조건과 일치하는 요소만 골라내는 데 사용됩니다.

이 메서드는 배열의 모든 요소를 하나씩 검사하면서, 전달된 조건을 통과하는 요소만 결과로 반환합니다. 예를 들어 '주어진 배열에서 급여가 15000인 사람은 몇 명인가'라는 조건을 전달하면, _.where()는 각 요소를 꼼꼼히 살펴 조건을 만족하는 요소만 골라 출력합니다.

구문(Syntax)

_.where( list, testCondition);

_.where()는 두 가지 인자를 받습니다. 첫 번째는 검사 대상이 되는 배열(list)이고, 두 번째는 요소를 평가할 조건(testCondition)입니다. 조건을 통과한 요소들만 모아서 결과로 보여 줍니다.

예제 1: 나이(age) 조건으로 요소 찾기

다음 예제에서는 나이에 대한 조건을 전달하고, 그 조건에 맞는 요소만 화면에 출력합니다.

<html>
<body>
<script
    src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
</head>
<body>
<script>
    var people = [
      {"name": "Dhoni", "age": 38},
      {"name": "kohli", "age": 22},
      {"name": "Rohit", "age": 28},
      {"name": "dhawan", "age": 28}
    ]
    document.write(JSON.stringify(_.where(people, {age: 28})));
</script>
</body>
</html>

출력 결과

[{"name":"Rohit","age":28},{"name":"dhawan","age":28}]

배열 네 명 중 나이가 28살인 사람은 Rohit과 dhawan 두 명이므로, 해당 객체 두 개만 JSON 형태로 출력되었습니다.

예제 2: 학생 ID 조건으로 요소 찾기

다음 예제에서는 'students' 배열에 학생 ID(id)에 관한 조건을 전달하여, 조건과 일치하는 학생 정보를 출력합니다.

<html>
<body>
<script
    src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
</head>
<body>
<script>
    var students = [
      {"name": "Ravi", "id": 45},
      {"name": "Surya", "id": 45},
      {"name": "Chandra", "id": 47},
      {"name": "guru", "id": 40}
]
    document.write(JSON.stringify(_.where(students, {id:45})));
</script>
</body>
</html>

출력 결과

[{"name":"Ravi","id":45},{"name":"Surya","id":45}]

ID가 45인 Ravi와 Surya의 정보만 필터링되어 반환된 것을 확인할 수 있습니다. 이처럼 _.where()를 활용하면 복잡한 반복문 없이도 한 줄의 코드로 원하는 조건의 데이터를 간편하게 추출할 수 있습니다.