<!DOCTYPE html>
<html>
<head>
? ? <meta charset="UTF-8">
? ? <meta http-equiv="X-UA-Compatible" content="IE=edge">
? ? <meta name="viewport" content="width=device-width, initial-scale=1.0">
? ? <title>數(shù)組的高階方法</title>
</head>
<body>
? ? <script>
? ? ? ? let arr = [11,22,33,44,55,66,77,88,99,111,222,333,444]
? ? ? ? // 1.forEach()方法,用于循環(huán)遍歷整個數(shù)組
? ? ? ? // forEach()方法的回調(diào)函數(shù)中,可以傳兩個參數(shù):數(shù)組的每個元素 和 每一個元素對應(yīng)的下標(biāo)
? ? ? ? arr.forEach((val,index)=>console.log(index+'-'+val))
? ? ? ? // 2.filter()方法,用于過濾數(shù)組中的元素,返回過濾結(jié)果
? ? ? ? let arr1 = arr.filter(val => val % 2===0)
? ? ? ? console.log(arr1);
? ? ? ? let arr2 = arr.filter(val => val % 3===0)
? ? ? ? console.log(arr2);
? ? ? ? // 3.find()方法,用于獲取數(shù)組中滿足規(guī)則的第一個元素
? ? ? ? let num1 = arr.find(val=> val % 3===0)
? ? ? ? console.log(num1);
? ? ? ? // 4.findIndex()方法,用于獲取數(shù)組中滿足規(guī)則的第一個元素下標(biāo)
? ? ? ? let index1 = arr.findIndex(val => val % 3===0)
? ? ? ? console.log(index1);
? ? ? ? // 5.some()方法,用于表示數(shù)組中是否有滿足指定規(guī)則的元素,有返回true,一個都沒有返回false
? ? ? ? let isHave1 = arr.some(val => val>1000)
? ? ? ? console.log(isHave1);
? ? ? ? let isHave2 =arr.some(val => val===222)
? ? ? ? console.log(isHave2);
? ? ? ? // 6.every()方法,用于表示數(shù)組中是否所有元素都滿足指定的規(guī)則
? ? ? ? let isHave3 = arr.every(val => val > 10)
? ? ? ? console.log(isHave3);
? ? ? ? let isHave4 = arr.every(val => val % 2 ===0)
? ? ? ? console.log(isHave4);
? ? ? ? // 7.map()方法,用于將原始數(shù)組里面的數(shù)據(jù)根據(jù)指定的規(guī)則返回新的數(shù)組
? ? ? ? let arr3 = arr.map(r=>r%7)
? ? ? ? console.log(arr3);
? ? ? ? console.log('---------------------------------');
? ? ? ? let arr4 = [33,22,55,7,46]
? ? ? ? // 8.sort()方法,對數(shù)組的元素進行排序
? ? ? ? // 回調(diào)函數(shù)需要傳兩個參數(shù),返回參數(shù)1 - 參數(shù)2是升序,返回參數(shù)2 - 參數(shù)1是降序
? ? ? ? console.log(arr4);
? ? ? ? arr4.sort((a,b)=>a-b)
? ? ? ? console.log(arr4);
? ? ? ? arr4.sort((a,b)=>b-a)
? ? ? ? console.log(arr4);
? ? ? ? // 9.reduce()方法,統(tǒng)計數(shù)組中元素的和(從左到右)
? ? ? ? // a是數(shù)組中的一個數(shù),b從數(shù)組中第二個數(shù)開始,回調(diào)函數(shù)的返回值是a的下一次的值
? ? ? ? let sum1 = arr4.reduce((a,b)=>{
? ? ? ? ? ? return a+b
? ? ? ? })
? ? ? ? console.log(sum1);
? ? ? ? console.log('-------------------------------');
? ? ? ? // reduce()方法,可以給a設(shè)置一個起始值,這里的0就是a的起始值,b從數(shù)組的第一位開始。
? ? ? ? let sum2 = arr4.reduce((a,b)=>{
? ? ? ? ? ? return a+b
? ? ? ? },0)
? ? ? ? console.log(sum2);
? ? ? ? console.log('-------------------------------');
? ? ? ? // 10.reduceRight()方法,統(tǒng)計數(shù)組中元素的值(從右到左)
? ? ? ? let sum3 = arr4.reduceRight((a,b)=>{
? ? ? ? ? ? return a+b
? ? ? ? })
? ? ? ? console.log(sum3);
? ? </script>
</body>
</html>