zoukankan      html  css  js  c++  java
  • FCC 中级算法题 比较两个数组

    Diff Two Arrays

    比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素。言之,返回两个数组的差异。

    ComparisonOperators

    Array.slice()

    Array.filter()

    Array.indexOf()

    Array.concat()

    思路:

    先找出arr1中与arr2不同的部分组成新数组1,再找出arr2中与arr1不同的部分组成新数组2,在将这两个数组合并,得出两个数组不同的部分。

    知识点:

    (1)var newArr=arr.filter(func);

    filter函数可以筛选出可以使func函数返回true的元素并组成一个新的数组,func函数默认value值为数组中的单个元素;

    1  var newArr1 = arr1.filter(comp1);
    2  var newArr2 = arr2.filter(comp2); 

    (2)arr.indexOf(value)===-1;

    indexOF函数可以对数组进行查找,如果能在数组arr中找到value,则后面返回的数字是value值在arr中的索引;

    1  function comp1(value) {
    2         if (arr2.indexOf(value) === -1) {
    3             return true;
    4         }
    5     }

    (3)newArr = newArr1.concat(newArr2);

    concat函数可以实现两个数组的组合,newArr1和newArr2的首尾相接形成新的数组。

    1 newArr = newArr1.concat(newArr2);

    代码:

     1 function diff(arr1, arr2) {
     2     var newArr = [];
     3 
     4     function comp1(value) {
     5         if (arr2.indexOf(value) === -1) {
     6             return true;
     7         }
     8     }
     9 
    10     function comp2(value) {
    11         if (arr1.indexOf(value) === -1) {
    12             return true;
    13         }
    14     }
    15     var newArr1 = arr1.filter(comp1);
    16     var newArr2 = arr2.filter(comp2);
    17     newArr = newArr1.concat(newArr2);
    18     return newArr;
    19 }
    20 diff(
    21     ["andesite", "grass", "dirt", "pink wool", "dead shrub"], ["diorite", "andesite", "grass", "dirt", "dead shrub"]);
  • 相关阅读:
    关联规则算法---Eclat算法
    Apriori算法第二篇----详细分析和代码实现
    scrapy框架初识
    git入门
    phantomjs的和谷歌浏览器的简单使用
    selenium模块的而简单使用
    代理ip的使用以及多进程爬取
    爬虫之re块解析
    爬虫初识和request使用
    xpath的基础使用
  • 原文地址:https://www.cnblogs.com/lailailee/p/7267826.html
Copyright © 2011-2022 走看看