1、includes()
let arr = [1,2,3,4,55];
arr.includes(5);
傳回的是布爾類型
2、find() 可以找出帶幾的項
let arr = [1,2,23,4,55,555];
arr.find(function(item,index){
return item.toString().indexOf(5)>-1
}) //隻找到55
傳回找到的那一項,不會改變原數組,回掉函數中傳回true表示找到了,找到後就停止循環,找不到傳回undefined
找到具體的某一項用find
例如:使用者清單,找使用者的使用者名和密碼,找到後就停止循環
3、some()、every()
let arr = [1,2,3,4,5];
arr.some(function(item,index){
return item.toString().indexOf(5)>-1
})
some() 找true 找到true後停止 傳回true,找不到傳回false
every() 找false 找到false後停止 傳回false
4、reduce()
收斂函數 四個參數 ,傳回疊加後的結果,原數組不發生變化,回調函數傳回:
1)prev代表的是數組的第一項,next 代表數組的第二項,
2)prev是undefined,next變成第三項
求和1:
[1,2,3,4,5].reduce(function(prev,next,index,item){
return prev+next; //本次傳回值會作為下一次的prev
})
求和2:
[{price:5,count:3},{price:5,count:3},{price:5,count:3}].reduce(function(prev,next){
return prev+next.price*next.count;
},0); //預設指定第一次的prev
二維數組變一維數組:
[[1,2,3],[4,5,6],[7,8]].reduce(function(prev,next){
return prev.concat(next);
})
5、map()
映射 将原有數組映射成一個新數組
[1,2,3]
<li>1</li><li>2</li><li>3</li>
let arr = [1,2,3].map(function(item){
return `<li>${item}</li>` //['<li>1</li>','<li>2</li>','<li>3</li>']
})
arr.join('') //<li>1</li><li>2</li><li>3</li>
不改變原數組,傳回新數組,回調函數中傳回什麼這一項就是什麼
6、filter()
過濾
[1,2,3,4,5].fliter(function(item){
return item>2&&item<5 //[3,4]
})
不操作原數組,傳回過濾後的新數組,回調函數中傳回true表示這一項放到新數組中