JavaScript数组热闹的循环和ES6中数组新特性

数组:

ES5里面新增一些东西

循环:

1.for     for(let i=0; i<arr.length; i++)

2.while

arr.forEach()   //代替普通for

arr.forEach(function(val,index,arr){

console.log(val,index,arr)

})

arr.map()  //非常有用,做数据交互, “映射”

正常情况下,需要配合return,返回是一个新数组;若没有return,相当于forEach

注意:平时只要用return,一定要有return

重新整理数据结构:[{title:'aaa'}] -> [{t:'aaa'}]

arr.filter():过滤,过滤一些不合格‘元素’,如果回调函数返回true,就留下来

arr.some() 类似查找,数组中某一个元素复合条件,返回true

arr.every() 数组里面所有元素都符合条件,才返回true

其实以上循环方法可以接收两个参数:

arr.forEach/map...(循环回调函数,this指向谁);

-----------------------------------------------------------------------

arr.reduce() //从左往右 参数(prev,curr,index,arr)

求数组的和、阶乘

arr.reduceRight() //从右往左

-------------------------------------------------------------------------

ES2017新增一个运算符:幂     Math.pow(2,3)可以写成 2 ** 3 了

====================================================

for...of

arr.keys()  数组下标

arr.entries()   数组某一项

for(let val of arr){

console.log(val)

}

====================================================

let arr = [1,2,3]    let arr2 = [...arr]

let arr2 = Array.from(arr)

Array.from作用:把类数组(获取一组元素、arguments...)对象转成数组

个人观点:只要有length属性,就能用Array.from()

let json = {

1:'a',

2:'b',

3:'c',

length:3

}

let arr = Array.from(json)   //arr ==['a','b','c']        如果length变成2  arr==['a','b']

Array.of()  把一组值转成数组

let arr = Array.of('a','b','c')//  arr == ['a','b','c']

arr.find():查找,找出第一个符合条件的数组成员,如果没找到,返回undefined

arr.findIndex() 找到的是位置,没有返回-1

arr.fill() 填充     arr.fill(填充的东西,开始位置,结束位置)

在ES2016新增

arr.includes()

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Javascript有很多数组的方法,有的人有W3C的API,还可以去MDN上去找,但是我觉得API上说的不全,M...
    顽皮的雪狐七七阅读 4,185评论 0 6
  • 1、新的声明方式 以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种...
    令武阅读 1,017评论 0 7
  • 拒绝,有时候让你很不好意思,怕伤害感情,得罪朋友,但不会拒绝别人,又让自己很累,很烦躁。不过拒绝别人的时候态度要温...
    藏福阅读 193评论 0 0
  • 阅读用时:5h20min 页码:258P 关于《深度工作》这本书,不得不说它提出的“深度工作”的概念确实是如今浮...
    璇以深阅读 359评论 2 2
  • 我有个朋友,叫黄易生。 真是名如其运气,无论做什么事情到最后肯定黄。 原因也可能是因为他懒吧,到最后事情黄了他也懒...
    原来是梦啊阅读 542评论 0 1