js 如何获取两个数组中的不同元素

JavaScript013

js 如何获取两个数组中的不同元素,第1张

js获取数组中的一部分元素,有2种方法:slice和filter函数,下面分别介绍。

slice

slice的定义和用法如下,用于截取数组的一段

执行

var arr = [1,2,3,4,5]

arr.slice(1,4)

这2行代码,可以看到截取了1到4下标的代码

filter

filter则用于过滤数组中的一部分元素,剩下的元素就是需要的那部分元素。

现在尝试下面代码,可以将一个数字数组中的偶数过滤掉,只留下奇数。

var arr = [1,2,3,4,5]

arr.filter(e=>e%2==0)

平时需求中经常遇到,找出两数组中不相同的部分。有时候会要找出被删除的元素。

indexOf是找出数组中元素第一次出现的位置。

lastIndexOf是找出数组中元素最后出现的位置。

假如两个数组合并后,重复的元素出现两次,indexOf和lastIndexOf的值是不一样的,反之,如果元素不是重复元素,那么,indexof和lastIndexOf值是一样的。

reduce()方法为归并类方法,最常见的应用场景就是,计算数组中每一项的总和。

reduce()方法会遍历数组的每一项,它接收两个参数:

第一个参数是:每次遍历都会调用的函数,而这个函数又接收四个参数,分别为:前一个值、当前项、项目的索引和数组对象,

而这个函数的返回值,会传给下一次遍历时,执行的这个方法的第一个参数。

第二个参数是:归并基础的初始值。

总结:

1.当reduce()方法的第二个值为空时,第一次循环方法中的第一个参数(prev)为数组的第一项值,第二个参数(cur)为数组的第二项值,反之,第一次循环方法中的第一个参数(prev)为reduce的第二个参数值,第二个参数(cur)为数组的第一项值。

2.reduce方法的第一个参数,就是每次遍历都会执行的匿名函数,当前函数的返回值会传给下一次执行函数的第一个值。也就是prev

https://www.kancloud.cn/pengyp/js_node_html_css/1329568

var array1 = [

    {"Num": "A "  },

    {"Num": "B" }

]

var array2 = [

    {"Num": "A ","Name": "t1 " },

    {"Num": "B","Name": "t2"},

    {"Num": "C " ,"Name": "t3 ",age:'222'},

    {"Num": "D" ,"Name": "t4 ",age:'3333'}

]

var result = []

for(var i = 0i <array2.lengthi++){

    var obj = array2[i]

    var num = obj.Num

    var isExist = false

    for(var j = 0j <array1.lengthj++){

        var aj = array1[j]

        var n = aj.Num

        if(n == num){

            isExist = true

            break

        }

    }

    if(!isExist){

        result.push(obj)

    }

}

console.log(result)