dustjs перебирает массив и получает счет
Есть ли способ в dustjs
перебрать массив и получить номер вхождения?
Я пытаюсь получить счет type='MOBILE' из данных JSON ниже:
[
{
"type": "MOBILE",
"formattedPhoneNumber": "5123 4566"
},
{
"type": "MOBILE",
"formattedPhoneNumber": "5123 4568"
},
{
"type": "MOBILE",
"formattedPhoneNumber": "5123 4568"
},
{
"type": "LANDLINE",
"formattedPhoneNumber": "5123 4568"
}
]
здесь я ожидаю счет 3 из приведенного выше примера, где тип "MOBILE".
1 ответ
Вы можете написать простой помощник, чтобы сделать это для вас. Помощник преобразует данные из вашего контекста определенным образом. Для получения дополнительной информации вы можете прочитать документацию по контекстным помощникам
{
"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}