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

2018-09-29  本文已影响0人  前端_攻城狮

数组:

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()

上一篇下一篇

猜你喜欢

热点阅读