一、遍历数组
1、filter: 新数组、return、条件表达式 (不改变原数组)
把满足条件的元素返回给 新数组,filter返回的是新数组
!!!! 赋值,会直接覆盖掉原来的值
使用::使用filter过滤 原数组,然后把过滤后的数组 赋值给原数组
!使用 例子:删除数据
注意事项
(1)filter() 不会对空数组进行检测;
(2)filter() 不会改变原始数组。
!!!需要注意的一点,filter函数存在一个隐式转换机制:
筛选数组里的元素,符合条件的元素 会被filter函数默认转成true 并通过return返回给新数组;
不满足条件的,默认转为false,该元素会被过滤掉
注意:如果数组中有 0,’’,false,NaN,undefined,null 这些元素,filter会自动给过滤掉,
因此filter函数需慎用。
2、map:新数组、return
map:新数组、if条件、return
3、扩展运算符
扩展运算符 对对象拷贝 属于浅拷贝;常常 对数组拷贝
4、arr.includes()-- 查找 数组中包含某个元素
!!--实例应用
!1、取出两个数组中,不相同的元素 组成新的数组
// 思路:拿到数组1,数组2,然后从数组1中过滤处 和数组2不相同的元素集合(数组),再拼接给数组1
let result = []
const arr1 = data.filter(item=>{item.owner_type === 1}) //拿到定制数据
const arr2 = data.filter(item=>{item.owner_type !== 1}) //拿到系统数据
// arr2.forEach(item=>{
const newData =[...new Set(arr2)].filter(item=>!arr1.includes(item.meta.internal_name)) //取出数组2中 和数组1不相同名称 的元素
return result =[...arr1.concat(newData)]
参考:
getSame(arr1, arr2) {
return [...new Set(arr1)].filter(item =>
!arr2.includes(item)
)
}
// eg:
var a1 = [1, 2, 3, 3, 4, 5],
a2 = [2, 3, 4, 5, 6];
getSame(a1, a2); //[1]
2、去重 newArr = Array.from(new Set(arr))