我必须为“和”考虑大量参数,然后在模板上执行操作。
所以,我在客户端创建了下面的帮助器。
Template.registerHelper('isIdle', function (...arg) {
// how to loop and do "AND" operation with all arugments here.
});
从UI,我可以传递任意数量的参数,如下所示
{{isIdle isOnline isWorking isMoving isUsingChrome}}
如何遍历'n'参数并执行AND操作?我要检查的是(isOnline && isWorking && .......)
等等
答案 0 :(得分:3)
您可以使用reduce
:
function and(...arg) {
return arg.reduce( (res, bool) => res && bool );
}
// Example calls:
console.log(and(true)); // true
console.log(and(false)); // false
console.log(and(true, true)); // true
console.log(and(true, false)); // false
如果你想接受没有参数传递给这个函数的情况,并期望函数将其解释为vacuous truth,你可以使用reduce
的第二个参数:
function and(...arg) {
return arg.reduce( (res, bool) => res && bool, true );
}
console.log(and()); // true
答案 1 :(得分:0)
特定于Meteor实施,它看起来如下;
Template.registerHelper('isIdle', function (...args) {
return args.reduce((previous, current) => previous && current);
});