2015-12-22 4 views
0

Есть ли способ в dustjs для итерации по массиву и получения числа случаев?dustjs итерации через массив и получить счет

Я пытаюсь получить счетчик типа = «MOBILE» из данных в формате JSON ниже:

[ 
    { 
     "type": "MOBILE", 
     "formattedPhoneNumber": "5123 4566" 
    }, 
    { 
     "type": "MOBILE", 
     "formattedPhoneNumber": "5123 4568" 
    }, 
    { 
     "type": "MOBILE", 
     "formattedPhoneNumber": "5123 4568" 
    }, 
    { 
     "type": "LANDLINE", 
     "formattedPhoneNumber": "5123 4568" 
    } 
] 

здесь я ожидал отсчет 3 из выше примера, где типа является «MOBILE».

ответ

0

Вы можете написать простой помощник, чтобы сделать это за вас. Помощник преобразует данные из вашего контекста определенным образом. Для получения дополнительной информации вы можете прочитать в документации по context helpers

{ 
    "numbers": [{ "type": "MOBILE", ... }, { ... }], 
    "countByKey": function(chunk, context, bodies, params) { 
    var target = context.resolve(params.target); 
    var key = context.resolve(params.key); 
    var value = context.resolve(params.value); 
    return target.filter(function(item) { 
     return item[key] === value; 
    }).length; 
    } 
} 

Затем вы можете использовать ваш помощник в шаблоне, как это:

{#countByKey target=numbers key="type" value="MOBILE"}You have {.} mobile numbers{/countByKey} 
Смежные вопросы