使用Meteor在es6函数中“定义”n个参数

时间:2017-05-30 12:07:09

标签: javascript meteor ecmascript-6

我必须为“和”考虑大量参数,然后在模板上执行操作。

所以,我在客户端创建了下面的帮助器。

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 && .......)等等

2 个答案:

答案 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);
});