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)