js数组方法

es6为Array类增加了@@iterator属性,需要通过Sysbol.iterator来访问

let number = [1, 2, 3]
let iterator = number[Symbol.iterator]()
console.log(iterator.next())//{value: 1, done: false}
console.log(iterator.next())//{value: 2, done: false}
console.log(iterator.next())//{value: 3, done: false}
console.log(iterator.next())//{value: undefined, done: true}

一旦没有可迭代的值,iterator.next()就会返回value为undefoned,done为true的对象

enteries方法返回包含键值对的@@iterator

let number = [5, 4, 3]
let iterator = number.entries()//得到键值对的迭代器
console.log(iterator.next().value)//[0, 5],位置为0的值为5
console.log(iterator.next())//{value: Array(2), done: false}
console.log(iterator.next())//{value: Array(2), done: false}
console.log(iterator.next())//{value: undefined, done: true}

keys方法返回包含数组索引的@@iterator

let number = [5, 4, 3]
let iterator = number.keys()
console.log(iterator.next())//{value: 0, done: false}
console.log(iterator.next())//{value: 1, done: false}
console.log(iterator.next())//{value: 2, done: false}
console.log(iterator.next())//{value: undefined, done: true}

values方法返回包含数组的值的@@iterator

let number = [5, 4, 3]
let iterator = number.values()
console.log(iterator.next())//{value: 5, done: false}
console.log(iterator.next())//{value: 4, done: false}
console.log(iterator.next())//{value: 3, done: false}
console.log(iterator.next())//{value: undefined, done: true}

Array.from(array) 根据已有的数组创建一个新数组

 ```javascript

console.log( Array.from([1,2,3]))//[1, 2, 3]
```

==Array.of(params)==根据传入的参数创建一个新数组

console.log(Array.of(2,5,6))//[2, 5, 6]

push()

unshift()

pop()

shift()

splice()

concat()

迭代器函数:

  • every()
  • some()
  • forEach()
  • map()
  • filter()
  • reduce()

for……of

@@iterator

entries()

keys()

values()

Array.from()

Array.of()

fill()

copyWithin()

reverse()

sort()

indexOf()

lastIndexOf()

find()

findIndex()

includes()

toString()

join()

上一篇:06.JavaScript-数组


下一篇:javascript Promise