Javascript 如何使用handlebar.js中的值筛选此数组?

Javascript 如何使用handlebar.js中的值筛选此数组?,javascript,handlebars.js,Javascript,Handlebars.js,页面标题 {{{#每个#u当配置文件“性别”“男性”} {{ID}}。{{from}}{{gender}} {{/each_when} var json={ “简介”:[ {“ID”:1,“性别”:“男性”,“发件人”:“奥利维亚”}, {“ID”:2,“性别”:“男性”,“发件人”:“米根”}, {“ID”:3,“性别”:“女性,男性”,“发件人”:“亚伦”}, {“ID”:4,“性别”:“女性”,“发件人”:“亚伦”} ] }; 车把.注册表帮助器('each_when',功能(列表、k、v


页面标题
{{{#每个#u当配置文件“性别”“男性”}
{{ID}}。{{from}}{{gender}}
{{/each_when} var json={ “简介”:[ {“ID”:1,“性别”:“男性”,“发件人”:“奥利维亚”}, {“ID”:2,“性别”:“男性”,“发件人”:“米根”}, {“ID”:3,“性别”:“女性,男性”,“发件人”:“亚伦”}, {“ID”:4,“性别”:“女性”,“发件人”:“亚伦”} ] }; 车把.注册表帮助器('each_when',功能(列表、k、v、选项){ log(参数); var i,结果=“”; 对于(i=0;i
ID为
3
的对象不会附加到结果中,因为您的助手正在筛选出
性别属性不等于
男性的对象。对象3的
性别
“女性,男性”
,因此它没有通过平等测试

如果要检查
列表[i][k]
是否包含
v
,则必须更新逻辑

var i, result = '', values;

for (i = 0; i < list.length; ++i) {
    values = list[i][k].replace(/\s*,\s*/, ',').split(',');
    if (values.indexOf(v) > -1) {
        result += opts.fn(list[i]);
    }
}

return result;
如果您不想为Aaron显示“雌雄”,这意味着您实际上不想渲染对象的
gender
属性。相反,您应该将想要的文本硬编码到模板中:

{{ID}}. {{from}} male<br>
{{ID}。{{from}}男

感谢“76484”的回复。但是您的代码不起作用。@Rehaankkhan:我在编写解决方案时更改了几个变量名。我已将它们改回您原来的
k
v
。有关工作示例,请参见。
{{ID}}. {{from}} male<br>