Javascript-Handlebars helper比较两个数组并返回差值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Javascript-Handlebars helper比较两个数组并返回差值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1377字,纯文字阅读大概需要2分钟。
内容图文
![Javascript-Handlebars helper比较两个数组并返回差值](/upload/InfoBanner/zyjiaocheng/659/27dc9845aeb144d48866b0bbaa958b31.jpg)
我是handlebars.js的新手,我需要一个handlebars助手来比较两个数组并返回差值.
我已经尝试过该示例,但它对我不起作用.我想我在犯一些错误.
请在下面找到我的代码并纠正我.
Java脚本
var subscriptionInfo = {
subscription : "oldFeature",
feature : {
oldFeature : ["1 Free Projects", "10 MB Storage Space", "Project Feeds","Task Management"],
newFeature : ["10 Free Projects", "1 GB Storage Space", "Project Feeds","Task Management"]
}
模板
<ul class='featureList'>
{{#feature}}
{{#oldFeature}}
<li class="{{arraysDiff ../oldFeatur ../newFeature}} myclass {{arraysDiff}}">{{.}}</li>
{{/oldFeature}}
{{/feature}}
</ul>
解决方法:
您需要做的第一件事是一种计算两个数组差异的方法.根据要比较的数组类型,您可能需要其他方法才能获得具有差异的数组.在此示例中,我将使用this other SO answer中说明的方法.
function arr_diff(a1, a2)
{
var a=[], diff=[];
for(var i = 0; i < a1.length; i++) {
a[a1[i]] = true;
}
for(var i = 0; i < a2.length; i++) {
if (a[a2[i]])
delete a[a2[i]];
else
a[a2[i]] = true;
}
for(var k in a) {
diff.push(k);
}
return diff;
}
然后,您可以注册您的Handlebars助手来使用上述方法,如下所示:
Handlebars.registerHelper('arraysDiff', function(arrayA, arrayB, opts)
{
var result = arr_diff(arrayA, arrayB);
return opts.fn(result);
});
最后,您可以在Handlebars模板中使用此帮助程序:
{{#arraysDiff this.jsonArray1 this.jsonArray2}}
<!-- Do something with the difference array, e.g. print it -->
{{this}}
{{/arraysDiff}}
内容总结
以上是互联网集市为您收集整理的Javascript-Handlebars helper比较两个数组并返回差值全部内容,希望文章能够帮你解决Javascript-Handlebars helper比较两个数组并返回差值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。