2018.2.27 JavaScript数组方法应用

时间:2024-12-15 20:35:14

JavaScript数组方法应用

1.找出元素item在给定数组arr中的位置

function indexOf(arr,item){
return arr.indexOf(item);
} function indexOf(arr,item){
var index = -1;
arr.forEach(function(res,i)){
if(res === item && index === -1){
index = i;
}
});
return index;
} function indexOf(arr,item){
if(Array.prototype.indexOf){
return arr.indexOf(item);
}else{
for(var i = 0; i<arr.length;i++){
if(arr[i] === item){
return i;
}
}
}
return -1;
} function indexOf(arr,item){
var len = arr.length;
for(var i = 0;i < len;i++){
if(arr[i] == item){
return i;
}
}
return -1;
}

2.计算数组arr中所有元素的总和

//不考虑算法复杂度,用递归
function sum(arr){
var len = arr.length;
if(len == 0){
return 0;
}else if(len ==1){
return arr[0];
}
}else{
return arr[0] + sum(arr.slice(1));
}
} //常规循环
function sum(arr){
var s = 0;
for(var i = arr.length-1;i>=0;i--){
s+=arr[i];
}
return s;
} //函数式编程map-reduce
function sum(arr){
return arr.reduce(function(prev,curr,idx,arr)
return prev +curr;
});
} //forEach遍历
function sum(arr){
var s = 0;
arr.forEach(function(val,idx,arr)){
s += val;
},0);
return s;
}; //eval
function sum(arr){
return eval(arr.join("+"));
};

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

//1.splice()
function remove(arr,item){
var newarr = arr.slice(0);
for(var i = 0;i<newarr.length;i++){
if(newarr[i] == item){
newarr.splice(i,1);
i--;
}
}
return newarr;
} //2.push()
function remove(arr,item){
var newarr = [];
for(var i = 0;i<arr.length;i++){
if(arr[i] !=item){
newarr.push(arr[i]);
}
}
return newarr;
} //3.Array y.protototype.filter()
function remove(arr,item)