<script>
// 1, 使用reduce求数组中所有元素的乘积,
// var arr = [2, 3, 4, 5, 6, 7]
var arr01 = [2,3,4,5,6,7];
var result = arr01.reduce(function(pre,cur){
return pre * cur ;
})
console.log(result); //5040
// 2, 使用reduce求数组中的最大数,
// var arr = [2, 4, 6, 3, 7, 8, 5]
var arr02 = [2, 4, 6, 3, 7, 8, 5];
var result01 = arr02.reduce(function(pre,cur){
return pre>cur?pre:cur ;
// return Math.max(pre,current)
})
console.log(result01); //8
// 3, 使用indexOf完成数组去重.
var arr03 =[1,1,2,2,3,3,4,5,6,4,9,8,7]
var arr04 = [];
arr03.forEach((v,index)=>{
//indexOf从左至右查找v 返回找到的下标,
// 如果找到的下标是当前的下标,则没有重复
if(arr03.indexOf(v)==index){
arr04.push(v);
}
})
console.log(arr04); //(9) [1, 2, 3, 4, 5, 6, 9, 8, 7]
// 4. 使用for - of求5!(1 * 2 * 3 * 4 * 5)
var arr05 = [1,2,3,4,5]
var result01=1;
for(var value of arr05){
result01*=value;
}
console.log(result01); //120
// 5, 使用for - of求1!+2!+3!+4!+5!
var arr06 = [1,2,3,4,5];
var result02 = 1;
var sum = 0;
for(var value of arr06){
result02*=value;
sum +=result02;
}
console.log(sum);
// 6, 使用for - of求数组的最大数和最小数
var arr07 = [0,1,2,3,4,5];
var max = 0,min = 0;
for(var value of arr07){
if(value>max){
max=value;
}else if (value<min){
min=value;
}
}
console.log(max);
console.log(min);
// 7, 掌握数组去重的多种方法.
//用set去重
//用indexOf去重 数组方法
//findIndex实现
var arr08 = [1,2,1,2,3,4,3,1];
var indexs=[]; //接受数字第一次出现的下标,再根据下标拿值
for(var value of arr08){
var index= arr08.findIndex ((v)=>{ //findIndex()方法返回数组中满足提供的测试函数的第一个元素的索引。
return v == value;
})
if(!indexs.includes(index)){ //includes() 方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回 false。
indexs.push(index)
}
}
console.log(indexs); //(4) [0, 1, 4, 5]
// 8, 掌握各种循环的使用
for(var i in 4){ //万物皆可对象 没有运行结果也不会报错
console.log(i); //遍历对象或数组
}
// for(var v of 4){ //ncaught TypeError: 4 is not iterable
// console.log(v); //遍历数组
// }
</script>