//
// 1. 普通的循环
let arr = ['apple','banane','pear','tomato'];
for (let i=0;i<arr.length;i++){
console.log(arr[i]);
};
// 2.代替for;
arr.forEach(function (val,index,arr) {
console.log(index);
console.log(val);
console.log(arr);
});
/*3. arr.map() 映射 数据交互;正常情况下需要配合return 返回的是一个新的数组;
如果没有return时,map的功能相当于forEach;
平时用map时一定要有return返回值
*/
let data =[
{name:"小明",age:18,sex:'男'},
{name:"小智",age:17,sex:'男'},
{name:"小会",age:16,sex:'女'},
{name:"小兰",age:19,sex:'女'},
];
data.map((val,index,arr)=>{
console.log(index);
console.log(val);
console.log(arr);
});
let newdata = data.map((val,index,arr)=>{
let json = {};
json.n = val.name;
json.i = val.age+10;
json.s = val.sex;
return json;
});
console.log(newdata);
// 4. arr.filter() 过滤,需要有条件的,过滤一些不合格的不想要的元素;如果回调函数返回值是true,就留下来;
let newdata01 = data.filter((val,index,arr)=>{
return val.sex=='男';
});
console.log(newdata01);
// 5. arr.some() 类似查找;如果有这个元素则返回true;
let arr1=arr.some((val,index,arr)=>{
return val=='apple';
});
console.log(arr1);
let findInArray=(item,arr)=>{
return arr.some((val,index,arr)=>function () {
return val==item;
});
}
alert(findInArray('apple',arr));
// 6. arr.every() 数组里面的所有的元素都符合条件才返回ture;
// 7. arr.reduce(); 从左向右;
let arr02 = [1,2,3,4,5,6,7,8,9,10];
let b = arr02.reduce((prev,cur,index,arr)=>{
return prev+cur;
});
console.log(b);
// 8. arr.reduceRight();从右向左
// 9.for ….of 循环
let arr03 =['apple','banane','pear','tomato'];
for(let val of arr03){
console.log(val);
}
for(let index of arr03.keys()){
console.log(index);
}
for(let item of arr03.entries()){
console.log(item);
}
for(let item of arr03.entries()){
console.log(item[0]);
console.log(item[1]);
}
for(let [key,val] of arr03.entries()){
console.log(key);
console.log(val);
}