zoukankan      html  css  js  c++  java
  • 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

      

  • 相关阅读:
    主流编程语言
    计算机语言
    IT(Information technology)
    设计模式-学习
    Java 执行顺序
    学习大纲
    Springboot注解整理 二《自定义注解》
    IntelliJ IDE 基础经验备案三
    IntelliJ IDE 基础经验备案二
    Mybatis使用经验归档
  • 原文地址:https://www.cnblogs.com/zhrngM/p/8653044.html
Copyright © 2011-2022 走看看