天天看點

includes() 、find()、 some()、every()、reduce()、map()、filter()

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表示這一項放到新數組中