不学习总是有危机感....
方法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;
})
}