如何将函数应用于对象或类似对象的数组

时间:2017-07-19 06:53:52

标签: javascript

下面的

input可以是单个对象,也可以是相同类型对象的数组。我想在任何情况下都将myFunction应用于所有这些对象。

我用Lodash这样做:

if (input.length !== undefined) {
    // Array
    return _.map(input, myFunction.bind(this, options));
}
else {
    // One object
    return myFunction(options, input);
}

有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

一个有趣的方法是使用spread syntax,因此您总是会在函数中收到一个数组,从而简化它:

function f1(...input) {
  return _.map(input, myFunction.bind(this, options)); 
}

...

f1(o1); // call passing a single object 
f1(o1, o2); // call passing two objects 
f1(...[o1, o2]); // call passing an array with two objects