Javascript 如何使用手柄排除数组/对象元素?

Javascript 如何使用手柄排除数组/对象元素?,javascript,handlebars.js,Javascript,Handlebars.js,现在我有了这个json结构 "administration" : [ { "name" : "Sigfried Bermudez", "role" : "Associate Director" }, { "name" : "Karen Madrigal", "role" : "QA Manager" }, { "name" : "Jorge Lopez", "role" : "Project Manager" } ] 正如

现在我有了这个json结构

"administration" : [
  {
    "name" : "Sigfried Bermudez",
    "role" : "Associate Director"
  },
  {
    "name" : "Karen Madrigal",
    "role" : "QA Manager"
  },
  {
    "name" : "Jorge Lopez",
    "role" : "Project Manager"
  }
]
正如您看到的,该数组中的最后一个元素是“角色”:“项目经理”,我从视图中排除该元素的方式如下

{{#each chart-container.[3].administration}}
     {{#unless @last}}
          <span>{{@key}} {{this.name}}</span>
     {{/unless}}
{{/each}}
{{#每个图表容器[3]。管理}
{{{#除非@last}}
{{@key}}{{this.name}
{{/除非}
{{/每个}}
但是那元素改变了位置呢

我需要知道的是,我是否可以执行类似于
{{{#的操作,除非this.role.toLowerCase().indexof(“项目”)}
,或者在这种情况下最好的选择是什么?如果有一种方法可以从HTML中执行此操作,那将非常棒:)

工作示例:

使用把手辅助工具:

var entry_template = document.getElementById('entry-template').innerHTML;
var data = [
  {
    "name" : "Sigfried Bermudez",
    "role" : "Associate Director"
  },
  {
    "name" : "Karen Madrigal",
    "role" : "QA Manager"
  },
  {
    "name" : "Jorge Lopez",
    "role" : "Project Manager"
  }
]

Handlebars.registerHelper("ifvalue", function(conditional, options) {
  if (conditional !== options.hash.notequals) {
    return options.fn(this);
  } else {
    return options.inverse(this);
  }
});

var template = Handlebars.compile(entry_template);
var template_with_data = template(data);

document.getElementById('data').insertAdjacentHTML('afterbegin', template_with_data);
模板:

<script id="entry-template" type="text/x-handlebars-template">
  {{#each this}} 
    {{#ifvalue this.role notequals="Project Manager"}} 
        {{this.name}} 
    {{/ifvalue}} 
  {{/each}}
</script>
<div id="data">
</div>

{{{#每个这个}
{{{#ifvalue this.role notequals=“Project Manager”}
{{this.name}}
{{/ifvalue}}
{{/每个}}
工作示例:

使用把手辅助工具:

var entry_template = document.getElementById('entry-template').innerHTML;
var data = [
  {
    "name" : "Sigfried Bermudez",
    "role" : "Associate Director"
  },
  {
    "name" : "Karen Madrigal",
    "role" : "QA Manager"
  },
  {
    "name" : "Jorge Lopez",
    "role" : "Project Manager"
  }
]

Handlebars.registerHelper("ifvalue", function(conditional, options) {
  if (conditional !== options.hash.notequals) {
    return options.fn(this);
  } else {
    return options.inverse(this);
  }
});

var template = Handlebars.compile(entry_template);
var template_with_data = template(data);

document.getElementById('data').insertAdjacentHTML('afterbegin', template_with_data);
模板:

<script id="entry-template" type="text/x-handlebars-template">
  {{#each this}} 
    {{#ifvalue this.role notequals="Project Manager"}} 
        {{this.name}} 
    {{/ifvalue}} 
  {{/each}}
</script>
<div id="data">
</div>

{{{#每个这个}
{{{#ifvalue this.role notequals=“Project Manager”}
{{this.name}}
{{/ifvalue}}
{{/每个}}