es6 数组方法的扩展
数组的扩展
数组的类 Array
	  数组的定义
		    var arr = [12,23]
		    var arr = new Array(3)   数字3代表  三个元素 或 3个空位
			    arr[0] = ""; arr[1] = "" ;  arr[2] = ""
		    var arr = new Array("张","王")
 		
		
		    var arr = new Array("1")  //代表一个数组  且值为1
		    console.log(arr)  //["1"]
		
		    var arr = new Array(1)   //代表n个元素
		    console.log(arr) // [empty]
		
	  数组方法:	
		    of方法 :
			    //of
			    var arr = Array.of(4)
			    console.log(arr)   //[4]
			    返回一个元素为4的数组
		
		    foreach 方法:
			    //foreach()  遍历数组   返回值是undefined
			    var arr = ["王一博","肖战","魏婴","蓝忘机"]	
			    arr.forEach((item,index) => {console.log(item)}) 
			
			
			    let arr = ["王一博","肖战","魏婴","蓝忘机"]	
			    let as = arr.forEach((item,index) => {console.log(item)}) 
			    console.log(as) //undefined
			  
		    map方法:
			      //map() 遍历数组   返回值是数组
			      map最大的功能将原来的数组 一一映射成一个新的数组,内部一定使用return
			      let arr = ["王一博","肖战","魏婴","蓝忘机"]	
			      let as = arr.map((item,index) => {
				        return item;
			      })
			      console.log(as) // ["王一博","肖战","魏婴","蓝忘机"]	
		
		      filter方法:
			    //filter()  过滤  从数组中找出所有符合条件的元素,并返回成一个新的数组,不改变原来的数组
			      let arr = [
				        {"name":"王一博","age":22},
				        {"name":"肖战","age":20},
				      {"name":"谭雅宁","age":19}
			      ]
			      let as =  arr.filter((item,index)=>{
				      //return 返回的值是true 就保留  返回的值是false 就不保留
				      return item.age>20;
			      })
			      console.log(as) // {name: "王一博", age: 22}
			
		    find方法:
			    //find()  对数组进行逐个查找,当返回值为true说明找到,直接返回结果,不再往下查找			
			      let arr = [
				      {"name":"王一博","age":22},
				      {"name":"肖战","age":20},
				      {"name":"谭雅宁","age":19}
			        ]
			      let as = arr.find((item,index) => {
				      return item.age>18;
			      })
			      console.log(as) //{name: "王一博", age: 22}
			
		      every() / some()
			      every():
				      //every()  判断数组中的每个元素是否满足条件 ,都满足条件  返回值是true  如果有一个不满足 就是 false
				        let arr = [
					          {"name":"王一博","age":22},
					          {"name":"肖战","age":20},
					          {"name":"谭雅宁","age":19}
				        ]
				        let as = arr.every((item,index) => {
					        return item.age>20;
				          })
				      console.log(as)  //false
			
			      some():
				      //some  判断数组中的元素是否满足条件,只要有一个满足就返回true , 如果都不满足就是false
				        let arr = [
					          {"name":"王一博","age":22},
					          {"name":"肖战","age":20},
					          {"name":"谭雅宁","age":19}
				        ]
				        let as = arr.some((item,index) => {
					          return item.age>21;
				        })
				      console.log(as)  //true
				
		    reduce():
			      //reduce()  迭代  从第二个元素执行,因为第一个元素没有上一个
			      //参数是一个回调函数 ,回调函数可以放三个参数  第一个prev 代表上一次reduce返回的值 第二个item是当前元素 第三个index 是当前索引
			      let arr = [1,2,3,4,5,6,7,8,9,10]
			      let as = arr.reduce((prev,item,index) => {   //item 数组的元素从第二个开始   //prev 上一次的返回值 (第一个前面没有值)
				      console.log(prev) // 1 3 6 10 15 21 28 36 45
				        return prev+item;		
			      })
			      console.log(as) //55
			
			
			    //如果想让reduce从第一个元素开始执行 (默认从第二个执行) 回调函数后面的参数就是第一次执行reduce()的prev
			        let arr = [1,2,3,4,5,6,7,8,9,10]
			        let as = arr.reduce((prev,item) => {   
				          console.log(prev) 
				          return prev+item;		
			        },0)  //代表从第一个元素开始,并且让他的返回值是0
			      console.log(as)  //55
			
			
			      let name = ["tom","jim","jack","tom","jack"]
			      let as = name.reduce((prev,item) => {
				        if(item in prev){
					          prev[item]++
				        }else{
					          prev[item]=1
				        }  
				          return prev;
			        },{})
			      console.log(as) // {tom: 2, jim: 1, jack: 2}
                    
                
                
            
        
浙公网安备 33010602011771号