删除数组中连续的元素时,可以使用slice或者splice方法,splice时需要注意会修改原数组。
1.slice(start,end):方法可从已有数组中返回选定的元素,返回一个新数组,包含从start到end(不包含该元素)的数组元素。(不改变原数组)
var arr = [1,2,3,4,5]; console.log(arr.slice(1,-1));//[2,3,4] console.log(arr);//[1,2,3,4,5]
2.splice(index,howmany,item1,...itemx):该方法向或者从数组中添加或者删除项目,返回被删除的元素。(会改变原数组)
var arr = [1,2,3,4,5]; console.log(arr.splice(2,2,"hello"));//[3,4] console.log(arr);//[1, 2, "hello", 5] 改变了原数组
删除数组中不连续的元素时,可以自己写函数实现:
1:filter
function remove(arr, item) { return arr.filter(function(cur,index,src){ if($.isarray(item)){ if($.inarray(cur, item) != -1){ return false } }else{ if(cur === item){ return false } } return true }) } var arr = [1,2,3,4,5]; console.log(remove(arr,[1,2]));//[3,4,5] console.log(arr);//[1,2,3,4,5]
2:push
function remove(arr, item) { var temparr = []; $.each(arr, function(i,cur){ if($.isarray(item)){ if($.inarray(cur, item) == -1){ temparr.push(cur) } }else{ if(cur != item){ temparr.push(cur) } } }) return temparr } var arr = [1,2,3,4,5]; console.log(remove(arr,[1,2]));//[3,4,5] console.log(arr);//[1,2,3,4,5]
3:splice
function remove(arr, item) { var newarr = arr.slice(0); for(var i=0;i<newarr.length;i++){ if($.isarray(item)){ if($.inarray(newarr[i], item) != -1){ newarr.splice(i,1); i--; } }else{ if(newarr[i] == item){ newarr.splice(i,1); i--; } } } return newarr; } var arr = [1,2,3,4,5]; console.log(remove(arr,[1,2]));//[3,4,5] console.log(arr);//[1,2,3,4,5]
参考文献:
如对本文有疑问, 点击进行留言回复!!
2020-07-21 html5如何监听veido的全屏 + css的字体间距 + JS的window.open() + 软技能svn与git
html+css+js适合前端小白的实战全解(超详细)——2048小游戏(二)
在使用@angular/cli创建的angular项目上添加postcss等一系列移动端自适应插件
网友评论