javascript - 重写下划线交集——理解参数数组

标签 javascript functional-programming underscore.js

我下面写的函数是下划线的交集,从头重写。现在,这只适用于两个数组。我怎样才能让它按原样工作,但有任意数量的参数?

  _.intersection = function() {

            var argumentsArray = Array.prototype.slice.call(arguments);

            return _.filter(argumentsArray[0], function(val) {
                return _.indexOf(argumentsArray[1], val) != -1
            });

        };

最佳答案

您可以像下面这样对参数数组执行归约操作:

_.intersection = function() {
  var argumentsArray = Array.prototype.slice.call(arguments);

  return _.reduce(argumentsArray, function (intersectedArray, currentArray) {
    return _.filter(intersectedArray, function(val) {
      return _.indexOf(currentArray, val) !== -1
    });
  });
};

查看演示 here .

关于javascript - 重写下划线交集——理解参数数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31684722/

相关文章:

javascript - 将\u00f0\u009f\u0098\u008a 等 Facebook json 文件序列转换为表情符号字符

functional-programming - Erlang:获取列表中每个元组的第一个元素

javascript - 如何制作一个干净的模板并将多个项目传递给它?

java - 一种在 Java 8 中为算术运算编写函数的简洁方法

javascript - 按数组分组

javascript - 检查数组长度内的数组是否为空,然后从主数组中删除父数组

javascript - 确定菜单项是否溢出,然后显示移动菜单

javascript - 如果浏览器调整大小,如何使我的选择框在我的固定页脚溢出

javascript - 如何在 JavaScript 中设置浏览器特定的 css?

c# - C++:数据类型为函数的 map 语法?