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}
Другие вопросы по тегам