JSON은 JavaScript의 백미라고 할 수 있으며, 우아하고 간결한 코드로 Object와 Array의 초기화를 구현할 수 있습니다. 이는 또한 기호 분리보다 의미론적이며 XML보다 간결한 텍스트 기반 데이터 정의이기도 합니다. 따라서 점점 더 많은 JS 개발자가 이를 데이터 전송 및 저장으로 사용하고 있습니다.
JS 배열에는 데이터 쿼리 및 필터링을 용이하게 하는 유용한 메서드가 많이 내장되어 있습니다. 예를 들어, 다음과 같은 데이터가 있습니다.
var Heroes = [
// 이름============공격======방어========힘====민첩===== 지능====
이름: '얼음방 마녀', DP: 38, AP: 1.3, STR: 16, AGI: 16, int: 21},
{name: 빌려준 흑마법사', DP: 39, AP: 1.1, STR: 17, Agi:16, Int:21},
{name:'나가 사이렌', DP:51, AP:6.0, Str:21, Agi:21, Int:18} ,
{이름 :'현상금 사냥꾼', DP:39, AP:4.0, Str:17, Agi:21, Int:16},
18, Agi:22, Int:15},
{name:'빛의 수호자', DP:38, AP:1.1, Str:16, Agi:15, Int:22},
{name: '연금술사', DP:49, AP:0.6, Str :25, Agi:11, Int:25}
방어력이 40보다 크고 방어력이 4보다 작은 영웅의 경우 Array의 필터 방법을 사용할 수 있습니다.
코드 복사
루프 판단을 수동으로 작성하는 것에 비해 필터 방식은 매우 편리합니다. 하지만 함수 콜백을 기반으로 하기 때문에 사용할 때마다 함수를 작성해야 하는데, 이는 간단한 쿼리에는 매우 번거롭고, 콜백을 사용하는 효율성도 크게 떨어집니다. 하지만 이렇게 하려면 방법이 없습니다. 단순해지려면 어느 정도의 성능을 희생해야 합니다. 이보다 더 간단한 문장을 사용하고 코드 확장의 효율성을 충분히 누릴 수 있다면 얼마나 완벽할까요?
먼저 위 코드를 이렇게 작성할 수 있고,
질의 속도가 손으로 쓴 순회 판단과 같다
:
코드 복사
코드는 다음과 같습니다.