移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组

不学习总是有危机感....

方法1 :

splice方法 : 从数组中移除一个或多个元素,如果必要,在所移除的位置上插入新元素,返回所以出的元素.

arrayObj.splice(start,deleteCount,[item1,item2]);

arrayObj : 必选项.一个Array对象.

start 必选项.指定从数组中移除元素的开始位置,这个位置从0开始计算的.

deleteCount: 必选项.要移除的元素的个数.

item1,item2: 可选项.要在所以出元素的位置上插入的新元素

说明: splice方法可以移除从start位置开始的指定个数的元素并插入新元素,从而修改arrayObj,返回值是一个由所移除的元素组成的新的Array对象.

 

//普通循环

function remove(arr, item) {
    var a = arr.slice(0); //截取0到arr.length之间的长度
for(var i =0 ;i < a.length; i++)
  { 
    if(a[i]===item){ 
    a.splice(i,1); 
        i--; //很关键,因为上一步数组中移除了元素,数组长度改变了
     } 
}
 return a; 
 }

方法二:

push 方法

  将新元素添加到一个数组中,并返回数组的新长度值.

语法: arrayObj.push([item[item2[...[itemN]]]])

参数:

arrayObj: 一个Array对象

item,item2,.....,itemN

可选项.该Array的新元素.

说明: 方法将以新元素出现的顺序添加这些元素.如果参数之一为数组,那么该数组将作为单个元素添加到数组中.如果要合并两个或多个数组中的元素,那应该使用concat方法.

如下:

 forEach: 用于调用数组的每个元素,并将元素传递给回调函数

注意: forEach()对于空数组是不会执行回调函数的

语法: array.forEach(function(currentValue,index,arr),thisValue)

function(currentValue,index,arr)

currentValue:必须,当前元素

index:可选 当前元素的索引值

arr:可选,当前元素所属的数组对象

thisValue:可选,传递给函数的值一般用"this"值.如果这个参数为空,"undefined"回传递给"this"值

function remove(arr, item) {
var arrR=[];
arr.forEach(function(e){
if(e!==item){
arrR.push(e);
}
})
return arrR
}

方法三:

filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,但是filter不会对空数组进行检测,也不会改变原始数组.

currentValue:必须,当前元素

index:可选 当前元素的索引值

arr:可选,当前元素所属的数组对象

thisValue:可选,传递给函数的值一般用"this"值.如果这个参数为空,"undefined"回传递给"this"值

返回值:返回数组,包含了符合条件的所有元素,如果没有符合条件的则返回空元素

语法: array.filter(function(courrentValue,index,arr),thisValue)

//filter
function remove(arr,item){
return arr.filter(function(ele){
return ele != item;
})
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值