*****数组API
判断方法:
var bool=arr.every(fun):
用fun依次检查arr中每个元素,是否*都*符合条件
var bool=arr.some(fun)
用fun依次检查arr中每个元素,是否*包含*符合条件
其中: fun的三个参数:
当前元素值value,当前元素位置index,正在检查的数组arr
返回值: return 判断条件
判断方法:
var bool=arr.every(fun):
用fun依次检查arr中每个元素,是否*都*符合条件
var bool=arr.some(fun)
用fun依次检查arr中每个元素,是否*包含*符合条件
其中: fun的三个参数:
当前元素值value,当前元素位置index,正在检查的数组arr
返回值: return 判断条件
强调: 只要前一个元素已经可以得出最终结论,则退出循环
修改数组元素:
arr.forEach(function(value,index,arr){
直接修改arr中index位置的元素值
不需要返回值
})
****创建数组,并复制原数组的内容,同时修改每个元素
eg:
<span style="font-size:18px;">//笔试
<span style="background-color: rgb(255, 204, 204);">//every,some都是迭代,或者叫判断</span>
//只要前一个元素已经得出最终结论,则退出循环
var arr1=[2,4,6,8,10];
var arr2=[1,2,3,4,5];
var arr3=[1,3,5,7,9];
//检查arr1,是否都是偶数
/*var bool = arr1.every(function(value,index,arr){
console.log("检查第"+index+"个");
return value%2==0;
});
console.log(bool);
var bool = arr1.some(function(value,index,arr){
console.log("检查第"+index+"个");
return value%2==0;
});
console.log(bool);
*/
<span style="background-color: rgb(255, 204, 204);">/*修改数组元素*/</span>
/*arr3.forEach(functioin(value,index,arr)){
arr
});*/
<span style="background-color: rgb(255, 204, 204);">/*map的实现原理。笔试:会代码要手写,注释口述*/</span>
if(Array.prototype.map===undefined){//this-arr3,当前正在变化的数组
Array.prototype.map=function(fun){
//先创建空数组arr
var arr=[];
//遍历当前数组中的每个元素
for(var i=0;i<this.length;i++){
//如果i 在当前数组中
if(i in this){
//用undefined,借用函数fun,同时传入当前元素值,i,当前数组,将返回值保存到变量r中
//var r =fun.call(undefined,this[i],i,this);
//调用当前函数值
var r=fun(this[i],i,this);
}
//将r保存到arr中i的位置
r=arr[i];
}
//返回arr
return r;
}
}
//创建数组,复制原数组,对每个元素值进行加工
var arr4=arr3.map(function(value,index,arr){
return value*2;
});
docuemnt.write("<h1>"+String(arr3)+"</h1>");
//docuemnt.write("<h1>"+String(arr4)+"</h1>");</span>