JavaScript数组join,forEach,map方法解析与重构
join
var str=arr.join();将数组转换为字符串,并且返回字符串
join括号中是连接符,默认是逗号。(“-”),数字,true都会隐式转换为字符串,undefined不会显示,null转换为字符串
空字符串,会将数组元素直接首尾相连,没有连接符("")
重构join
var arr=[1,2,3,4,5];
function join(arr,separator){
if(separator===undefined) separator=",";
separator+="";
var str="";
for(var i=0;i<arr.length;i++){
str+=arr[i]+(i<arr.length-1 ? separator : "");
}
return str;
}
var str=join(arr,true);
console.log(str);
数组的遍历
forEach遍历
forEach遍历数组没有返回值,空元素不会被遍历,不能对元素操作
var arr=[1,2,3,4,5];
arr.forEach(function(item,index,arr){
// console.log(item,index,arr);
});
console.log(arr);
重构forEach
方法一:
var arr=[1,2,3,4,5];
function forEach(arr,fn){
for(var i=0;i<arr.length;i++){
if(i in arr)fn(arr[i],i,arr);
}
}
forEach(arr,callBack)
function callBack(item,index,arr){
console.log(item,index,arr)
}
方法一精简版:
var arr=[1,2,3,4,5];
function forEach(arr,fn){
for(var i=0;i<arr.length;i++){
if(i in arr)fn(arr[i],i,arr);
}
}
forEach(arr,function(item,index,arr){
console.log(item,index,arr)
})
map遍历
map 对每个元素返回一个新的内容形成新数组
遍历数组,并且将回调函数中返回的结果按照对应的位置存到一个新数组中
返回的数组长度等同于原数组的长度,可以对元素进项操作、筛选
var arr=[1,2,3,4,5];
var arr1=arr.map(function(item,index){
return item+10;
});
console.log(arr1);