Array的splice()方法:向/从数组中添加/删除项目,然后返回被删除的项目,该方法会改变原始数组
语法:array.splice(index,amount,a,.....,b),index代表开始增加或者删除的索引,amount代表从规定的索引开始删除的对象的数量,a,.....,b从索引开始开始添加的对象,index和amount为必选参数,a,.....,b是可选参数。
//示例方法
cosnt array = ["a", "b" ,"c" ,"d" ,"f"]
array.splice(2, 2, "m", "n", "t")
浏览器打印结果显示为:["a", "b" ,"m" , "n", "t", "f"]
Array的filter()方法:创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,filter() 不会对空数组进行检测,filter() 不会改变原始数组。
提示:this.testList为js中定义的新数组,pt为循环的初始数组,新数组是由满足 item.isReach == '不合格'条件返回的 item 组成的新数组
//示例方法
this.testList = pt.filter(function (item) {
return item.isReach == '不合格';
})
心得体会:需要循环将数组中某些满足条件目标元素删除时,在循环数组体内使用array.splice()方法无效,会导致循环数组的下标错乱;但可以使用Array的filter()方法得到解决。
//错误方法,会导致小标错乱
oldArray.forEach((item, index)=>{
if(item.isReach != '优秀'){
person.splice(index,1)
index = index - 1
}
})
//正确方法,通过使用filter(),原先数组不变,返回符合条件的数组,即可达到要求
this.newArray = oldArray.filter(function (item) {
return item.isReach == '优秀';
})