Diff Two Arrays

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

这是一些对你有帮助的资源:

这些资源又被我浪费掉了大部分。。不过好歹算是写出来了

function diff(arr1, arr2) {
  var newArr = [];
  var same=[];
  for(var i=0;i<arr1.length;i++){
    if(arr2.indexOf(arr1[i])!==-1){
      same.push(arr1[i]);                //找出相同的项放在一个数组中
    }
  }
  newArr=arr1.filter(function(v){
   return same.indexOf(v)==-1;           //找出第一个数组中不同的项
  }).concat(arr2.filter(function(v){
   return same.indexOf(v)==-1;           //找出第二个数组中不同的项
  }));
  return newArr;                         //返回
}

后来想想,其实不用找相同的项,直接找不同的项就好了,瞬间把上面的代码砍掉一大半,好厉害的感觉有木有

function diff(arr1, arr2) {
  return arr1.filter(function(v){
   return arr2.indexOf(v)==-1;        //第一个数组在第二个数组中不同的项
  }).concat(arr2.filter(function(v){
   return arr1.indexOf(v)==-1;
  }));                                //第二个数组在第一个数组中不同的项}
时间: 2024-11-08 00:24:10

Diff Two Arrays的相关文章

Diff Two Arrays-freecodecamp算法题目

Diff Two Arrays(比较两个数组) 1.要求 比较两个数组,然后返回一个新数组 该数组的元素为两个给定数组中所有独有的数组元素.换言之,返回两个数组的差异. 2.思路 定义一个新数组变量,将输入的两个数组用.concat()连接到一起赋值给它 定义一个check函数,返回两个给定数组中所有独有的数组元素 用.filter()筛选出新数组变量的符合条件的元素 3.代码 function diff(arr1, arr2) { var newArr = []; newArr = arr1.

FCC_Intermediate Algorithm Scripting_Diff Two Arrays

1.任务及要求 Diff Two Arrays 比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素.换言之,返回两个数组的差异. 如果你被难住了,记得使用 Read-Search-Ask尝试与他人结伴编程.编写你自己的代码. 这是一些对你有帮助的资源: Comparison Operators Array.slice() Array.filter() Array.indexOf() Array.concat() 测试数据: diff([1, 2, 3, 5], [1

lintcode-medium-3 Sum Closest

Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. For example, given array S = {-1 2 1 -4}, and target = 1. The sum that is closest to the target is 

FCC 中级算法题 比较两个数组

Diff Two Arrays 比较两个数组,然后返回一个新数组,该数组的元素为两个给定数组中所有独有的数组元素.言之,返回两个数组的差异. ComparisonOperators Array.slice() Array.filter() Array.indexOf() Array.concat() 思路: 先找出arr1中与arr2不同的部分组成新数组1,再找出arr2中与arr1不同的部分组成新数组2,在将这两个数组合并,得出两个数组不同的部分. 知识点: (1)var newArr=arr

FreeCodeCamp( FCC)前端工程师 中级算法练习 分析与解答(全)(精)

[TOC] 说在前面 这是要一篇非常简单的新手能看懂的文章,希望你喜欢.由于在 freecodecamp 中貌似!?无法使用 ES6 的某些语法,未测试具体.所以基本上用古老?!的ES5,4写成,谢谢.在写本博文前没有参考过别人的做法,纯手打,我的方法肯定不是最好,只是以我自己喜欢的方式在写而已. 纯原创,转载请联系作者https//:[email protected].[email protected]. freecodecamp China 不明白API请参考MDN给出的解释 个别题目没有判

Arrays.sort()

今天在做一个按更新时间搜寻出某个目录里面的全部文件,因为自己写算法比較花费时间,干脆就用j2se提供的类Arrays提供的sort()方法,这样就比較省力.对于基本数据类型仅仅要Arrays.sort(数组)[“注:数组是声明为基本数据类型的数组,如int[]等”] 对于对象类型,要 implement Comparable,所以得重载 compareTo() 这个方法.有了这个方法,那么 Arrays.sort() 就能按照这种方法的回传值来作排序的根据.其实,基本数据类型也都有 implem

[LeetCode] 349 Intersection of Two Arrays &amp; 350 Intersection of Two Arrays II

这两道题都是求两个数组之间的重复元素,因此把它们放在一起. 原题地址: 349 Intersection of Two Arrays :https://leetcode.com/problems/intersection-of-two-arrays/description/ 350 Intersection of Two Arrays II:https://leetcode.com/problems/intersection-of-two-arrays-ii/description/ 题目&解法

Arrays工具类

Arraysd的静态方法能够方便的对数组进行操作,每个方法也加了注释 : 程序: import java.util.*;public class Array{        public static void main(String[] args){                int[]  arr={1,3,4,2};                System.out.println("排序前:");                printArray(arr);//打印原数组

350.求两个数组的交集 Intersection of Two Arrays II

Given two arrays, write a function to compute their intersection. Example:Given nums1 = [1, 2, 2, 1], nums2 = [2, 2], return [2, 2]. Note: Each element in the result should appear as many times as it shows in both arrays. The result can be in any ord