• Symmetric Difference FreeCodeCamp


    function sym(args) {
      var arr = Array.prototype.slice.call(arguments);
    
      return arr.reduce((arr1, arr2) => {
        return arr1.concat(arr2).filter((val) => {
          return arr1.indexOf(val) === -1 || arr2.indexOf(val) === -1;
        }).filter((val, index, arr) => {
          return arr.indexOf(val) === index;
        });
      });
    }

    题目:

      创建一个函数,接受两个或多个数组,返回所给数组的 对等差分(symmetric difference) ( or )数组.

    分析:

      Array.reduce()  Symmetric Difference

      Array.prototype.slice()

        概述:方法返回一个从开始到结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象。且原始数组不会被修改。

        https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/slice

      arguments

        概述:arguments 是一个对应于传递给函数的参数的类数组对象。    

        https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/arguments

      Array.prototype.filter()

        概述:方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。

        https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/filter

      "=>"采用的是新的标准 ES6标准。这个标准会渐渐流行,有警告无伤大雅的。

      因为这是我目前见到思路最清晰,代码最简洁的写法了,所以摘录下来慢慢消化。

    本文参考博客:

      澄酱

        https://www.cnblogs.com/laoho/p/7787658.html

      

  • 相关阅读:
    js自定义回调函数
    python:sql建表语句转换为json
    简单list转化为tree结构
    JSP中页面定时刷新
    struts2中<s:select/>标签的运用详解
    Redis 的 Sentinel
    redis持久化(persistence)
    java验证身份证合理性
    js 里面的键盘事件对应的键码
    Struts2中使用OGNL表达式语言访问静态方法和静态属性
  • 原文地址:https://www.cnblogs.com/zhrngM/p/8653044.html
Copyright © 2020-2023  润新知