JS 比较两个数组 元素 差别

最近经常遇到js两个数组比较元素差别,特此记录方便以后查找。

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>

<title>测试</title>
<script type="text/javascript">
    var a1 = [1,3,4,5,6];
    var a2 = [2,3,7];
    var shao = [];
    var duo = [];
    var hebing = a1.concat(a2);
    hebing.sort();
    hebing.reverse();
    var quchong = $.unique(hebing);
    console.info(a1);
    console.info(a2);
    console.info(quchong);
    
    quchong.forEach(function(qitem,index,array){
        
        if(a1.every(function(item,qindex,array){return qitem != item;}))
        {
            duo.push(qitem);
        }
        
        if(a2.every(function(item,qindex,array){return qitem != item;}))
        {
            shao.push(qitem);
        }
    });
    console.info("a2比a1多的元素"+duo);
    console.info("少的元素"+shao);
</script>
</head>

<body>
</body>
</html>
时间: 2024-08-25 11:41:34

JS 比较两个数组 元素 差别的相关文章

C语言中,为什么指针表达式的值+1.对应的地址值却+4?/为什么两个数组元素的地址相减之差不为地址之差?

在C语言中,我们常常用到的一个运算是让某个变量的值+1. 例如 M = M + 1. 而在实际运用中,我们发现 对于指针进行+1运算,算出来的结果是+4. 如下图 图中我们定义的 变量M 和指针Matrix如下: int M = 3; int* Matrix = {1,2,3}; 可以看到,对于M和 Matrix ,+1运算的效果是不同的. 这个差异是因为C语言的标准中规定了 加法与减法运算对于地址的操作和对于值的操作是不同的,如下文中粗体所示: C89 3.3.6 Additive opera

JS比较两个数组是否相等 是否拥有相同元素

Javascript怎么比较两个数组是否相同?JS怎么比较两个数组是否有完全相同的元素?Javascript不能直接用==或者===来判断两个数组是否相等,无论是相等还是全等都不行,以下两行JS代码都会返回false <script type="text/javascript"> alert([]==[]); alert([]===[]); </script> 要判断JS中的两个数组是否相同,需要先将数组转换为字符串,再作比较.以下两行代码将返回true <

JS取出两个数组中的不同或相同元素

1.取出两个数组的不同元素 var arr1 = [0,1,2,3,4,5]; var arr2 = [0,4,6,1,3,9]; function getArrDifference(arr1, arr2) { return arr1.concat(arr2).filter(function(v, i, arr) { return arr.indexOf(v) === arr.lastIndexOf(v); }); } console.log(getArrDifference(arr1,arr2

探讨JS合并两个数组的方法

我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况. 比如: 1 2 var a = [1,2,3]; var b = [4,5,6]; 有两个数组a.b,需求是将两个数组合并成一个.方法如下: 1.concat js的Array对象提供了一个叫concat()方法,连接两个或更多的数组,并返回结果. 1 var c = a.concat(b);//c=[1,2,3,4,5,6] 这里有一个问题,concat方法连接a.b两个数组后,a.b两个数组的数据不变,同时会返回一个新的数组.

JS合并两个数组的方法

我们在项目过程中,有时候会遇到需要将两个数组合并成为一个的情况. 比如: 1 2 var a = [1,2,3]; var b = [4,5,6]; 有两个数组a.b,需求是将两个数组合并成一个.方法如下: 1.concat js的Array对象提供了一个叫concat()方法,连接两个或更多的数组,并返回结果. 1 var c = a.concat(b);//c=[1,2,3,4,5,6] 这里有一个问题,concat方法连接a.b两个数组后,a.b两个数组的数据不变,同时会返回一个新的数组.

JS - 计算两个数组的交集、差集、并集、补集(多种实现方式)

方法一:最普遍的做法 使用 ES5 语法来实现虽然会麻烦些,但兼容性最好,不用考虑浏览器 JavaScript 版本.也不用引入其他第三方库. 1,直接使用 filter.concat 来计算 var a = [1,2,3,4,5] var b = [2,4,6,8,10] //交集 var c = a.filter(function(v){ return b.indexOf(v) > -1 }) //差集 var d = a.filter(function(v){ return b.index

js指定分隔符连接数组元素join()

指定分隔符连接数组元素join() join()方法用于把数组中的所有元素放入一个字符串.元素是通过指定的分隔符进行分隔的. 语法: arrayObject.join(分隔符) 参数说明: 注意:返回一个字符串,该字符串把数组中的各个元素串起来,用<分隔符>置于元素与元素之间.这个方法不影响数组原本的内容. 我们使用join()方法,将数组的所有元素放入一个字符串中,代码如下: <script type="text/javascript"> var myarr

js取两个数组的交集|差集|并集|补集|去重示例代码

http://www.jb51.net/article/40385.htm 代码如下: /** * each是一个集合迭代函数,它接受一个函数作为参数和一组可选的参数 * 这个迭代函数依次将集合的每一个元素和可选参数用函数进行计算,并将计算得的结果集返回 {%example <script> var a = [1,2,3,4].each(function(x){return x > 2 ? x : null}); var b = [1,2,3,4].each(function(x){re

两个数组元素的地址相减

#include <iostream> using namespace std; int main() { int a[3]; a[0] = 1; a[1] = 2; a[2] = 3; //int *p, *q; //p = a; //cout << p <<'\n'; //cout << *p <<'\n'; //q = &a[2]; //cout << q << endl; //cout << *