1. 程式人生 > >es5/6數組遍歷以及常用的一些方法

es5/6數組遍歷以及常用的一些方法

一個數 bind RR 函數 -- 結構 索引 沒有 des

數組的遍歷方法
1...for(var i=0;i<arr.length;i++){

}
------------------------------------------------------------
2...arr.forEach(function(val,index,arr){
  console.log(val,index,arr) //第三個參數就是原數組可要可不要;
})
arr.forEach((val,index,arr)=>{
  console.log(this,val,index,arr) //第三個參數就是原數組可要可不要;
},bind(123)) //this指向會變箭頭函數;
------------------------------------------------------------ 3...arr.map((val,index,arr)=>{ console.log(val,index,arr) //正常需要返回值,並且返回的新的一個數組; }) 註意:一般需要有return 沒有則相當於forEach;重新整理數據結構 ------------------------------------------------------------ 4...arr.filter((val,index,arr)=>{ return val.xxx==條件; //
過濾不合格的元素; }) ----------------------------------------------------------- 5...arr.some((val,index,arr)=>{ //類似查找,數組某個元素符合則返回true }) let arr = [1,2,3] let newArry = arr.some((val,index,arr)=>{ return val==2 }) console.log(newArry) //true; ----------------------------------------------------------- 6...arr.every((val,index,arr)=>{
//數組每個元素符合則返回true }) let arr = [1,3,5] let newArry = arr.every((val,index,arr)=>{ return val%2==1 }) console.log(newArry) //true; ----------------------------------------------------------- 7...arr.reduce((prev,now,index,arr)=>{ return prev+now; //求數組的和、階乘;第一個參數表示前一個,第二個表示當前 }) let arr = [1,2,3] let sum = arr.reduce((prev,now,index,arr)=>{ return prev+now; //階乘Math.pow(prev,now)輸出 }) console.log(sum) //輸出6; ------------------------------------------------ let arr = [2,2,3] let sum = arr.reduce((prev,now,index,arr)=>{ return Math.pow(prev,now); //階乘prev**now }) console.log(sum) //輸出64; ----------------------------------------------------------- 8...for(let val of arr){ //arr.keys() //數組下標 //arr.entries() //數組的某一項 } let arr1=[1,2,3,4]; for(let a of arr1.keys()){ console.log(a) //結果:0,1,2,3遍歷了數組arr的索引 } -------------------------------------------------- let arr2=[1,2,3,4]; for(let a of arr2.values()){ console.log(a) //結果:1,2,3,4遍歷了數組arr的值 } -----------------------------------------------------------
擴展運算符:
...
let arr = [1,2,3]
let arr2 = [...arr]  //es6
let arr3 = Array.form(arr) //es6
let arr4 = [].call(arr)  //es5
--------------------------------------------------------------
Array.form:把類數組(獲取一組元素、arguments)對象轉成數組;如ul li;具備length屬性的;
特別的json:
let json = {
 0:"a",
 1:"b",
 2:"c",
 length:3
}
let newArr2 = Array.form(json)
console.log(newArr2) //["a","b","c"]
特別的String:
let str = "stfssfg";
let arr1 = str.split("");//es5
console.log(arr1)
let arr2 = Array.form(str)
console.log(arr2)
--------------------------------------------------------------
Array.of();把一組值轉成數組;
let arr = Array.of("xx1","xx2","xx3")
console.log(arr)  //["xx1","xx2","xx3"]
--------------------------------------------------------------
arr.find() 查找找出第一個符合條件的數組成員;沒找到返回undefined;
let arr  = [1,10,20,200,90];

let newArr = arr.find((val,index,arr)=>{
   return val>100;
})
console.log(arr) //200;
--------------------------------------------------------------
arr.findindex() 查找位置;沒找到返回-1;
let arr  = [1,10,20,200,90];

let newArr = arr.findindex((val,index,arr)=>{
   return val>1000;
})
console.log(arr) //-1;
--------------------------------------------------------------
arr.fill(填充的東西,開始位置,結束位置)
let arr  = new Arry(10);
arr.fill("默認值",1,5)
--------------------------------------------------------------
arr.includes() 判斷數組裏面是否包含這個值;
let arr = [1,2,3,4];
let arr1 = arr.includes(2);
cconsole.log(arr1)  //true;布爾值

es5/6數組遍歷以及常用的一些方法