ES6数组新方法

一.数组的类

数组的类是Array

二.数组的定义

    var arr=[元素]
    var arr=new Array(3) // 数字3,代表有三个元素或者三个空位。
   // 如果数组定义采用 new 实例,类中跟的是一个数字 n ,代表有 n 个元素。
    var arr=new Array("6") // 有一个元素,并且这个元素是6

三.数组的方法

of 方法

1. Array 类上的方法
  2. var arr=Array.of(4);console.log(arr); //4 返回一个元素为4的数组

for each 方法

1. 原型上的一个方法,用于对数组遍历,返回值是undefined
  2. var arr = [“xiaopang”, “xiaohe”, “xiaoxin”];
  arr.forEach((item,index)=>{
    console.log(index)
  })
  3. foreach 没有返回值

map 方法

1. 遍历数组(原型上的一个方法,返回值是一个数组,所以必须加 return 返回值),将数组一一映射成一个新的数组,内部一定要使用return
  2. var arr = [“xiaopang”, “xiaohe”, “xiaoxin”];
  var as=arr.map((item,index)=>{
  return item+“123”
  })
  console.log(as)

filter 方法

1. 过滤 从数组中找出所有符合条件的元素,并返回一个新的数组,不改变原有数组
  2. return true 就保留原来的数组,return false 就不保留
  3. 当return 的条件成立就是 true ,不成立就是 false
  4. var arr=[
  {“name”:“xiaopang”,“age”:10},
  {“name”:“xiaohe”,“age”:20},
  {“name”:“xiaoxin”,“age”:25},
  {“name”:“pangpang”,“age”:13}
  ]
  var as=arr.filter((item,index)=>{
    return item.age>13
  })
  console.log(as)
  5. var as=arr.filter((item,index)=>{
    return item.age>13
  })
  console.log(as)
  数组里有符合条件的,所以是 true ,所以返回符合条件的新数组

find 方法

1. 对数组逐个查找,当返回值为 true 说明查找到,直接返回结果,不再往下查找了
  2. var as=arr.find((item,index)=>{
    return item.age>13
  })
  console.log(as)

every 方法

1. 看数组中的每个元素是否都满足条件,都满足条件返回的是 true,如果有一个不满足,返回值就是 false
  2. var arr=[
  {“name”:“xiaopang”,“age”:10},
  {“name”:“xiaohe”,“age”:20},
  {“name”:“xiaoxin”,“age”:25},
  {“name”:“pangpang”,“age”:13}
  ]
  var as=arr.every((item,index)=>{
  return item.age<=13
  })
  console.log(as)

some 方法

看数组中的元素,是否有满足条件的,有就true ,没有 就是false

	var arr=[
		  {"name":"xiaopang","age":10},
		  {"name":"xiaohe","age":20},
		  {"name":"xiaoxin","age":25},
		  {"name":"pangpang","age":13}
	  ]
  var as=arr.some((item,index)=>{
  return item.age<=13
  })
  console.log(as)
reduce 方法

1. 迭代执行

var arr=[1,2,3,4,5,6,7,8,9,10];
  var as=arr.reduce((prev,item)=>{
  // prev 航一次返回值
  // item 数组的元素,从第二个开始
  console.log(prev);
    return prev+item;
  })
  console.log(as) //55

2. 注意: 1.从第二个元素开始执行,因为第一个元素没有上一个。
  
  3.第一次执行的返回的是第一个元素 reduce() 的参数是一个回调函数,回调函数中可以放三个参数,第一个 prev 代表上一次执行后的返回值,第二个 item 当前元素,第三个 index 索引值
  
  3. 如果想让 reduce 从第一个元素开始执行 (默认为第二个),可以在回调函数之后加一个参数,就可以让初始有个默认值

面试题

将一个数组转换成对象,属性是数组的元素,属性值是元素的个数
    解答:

		var arr=["item","tom",,"jack","item","jack"];
      var as=arr.reduce((prev,item)=>{
        if(item in prev){
          prev[item]++
        }
        else{
          prev[item]=1;
        }
        return prev
      },{})
      console.log(as);
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值