JS数组循环遍历常用的9种方法

JavaScript016

JS数组循环遍历常用的9种方法,第1张

首先定义一个数组

const arr = [1,2,3,4,5,6]

第一种:for循环

for (let i = 0i<arr.lengthi++){

   console.log(arr[i])

}

for(j=0,len=arr.lengthj<lenj++){}//这种方法基本上是所有循环遍历方法中性能最高的一种

第二种 for of (需要ES6支持) 性能要好于forin,但仍然比不上普通for循环

for (let value of arr){

       console.log(value)

}

第三种 for in 它的效率是最低的

for (let i in arr){

      console.log(arr[i])

 }

第四种 foreach() 实际上性能比普通for循环弱

    1、箭头函数写法

    arr.forEach(value =>{

        console.log(value)

    })

    2、普通函数写法

    arr.forEach(function(value){

       console.log(value)

     })

第五种 entries()

for (let [index, value] of arr.entries()) {

     console.log(value)

 }

第六种 keys()

for (let inx of arr.keys()){

console.log(arr[inx])

}

第七种 reduce()

1、箭头函数

arr.reduce((pre,cur)=>{

       console.log(cur)

 })

2、普通函数

arr.reduce(function(pre,cur){

     console.log(cur)

})

第八种 map() 但实际效率还比不上foreach

1、箭头函数

 arr.map(value=>{

       console.log(value)

 })

2、普通函数

arr.map(function(value){

      console.log(value)

})

第九种 values()

for (let value of arr.values()){

       console.log(value)

 }

<audio>的接口里有声音播放速度的接口,但是多浏览器支持没有做过测试,楼主小心使用。

myVid=document.getElementsByTag("audio")

myVid.playbackRate=4//大于1,就是高速播放

当然,如果是声音里面有衰减或空白的部分,不想剪辑声音的话,可以用多个Audio同时循环播放,如下:

var audios=[]

for (var i= 0i <5i++ ) {

var a = new Audio()

a.src = "" //填入你的音频地址

a.preload="auto"

a.loop = true

audios.push(a)

}

// 调用下面函数之前需要先确定audio已经完全载入,可以通过audio的readystate接口进行判断。

//这里直接就写成立即执行的方式了。

(function playSingle(i){

//用递归写的,迭代也可行

if ( i >0 ) {

audios[i-1].play()

setTimeout(function(){

playSingle(i-1)

},1000)//每隔1000毫秒,额外播放一个音频

}

})(audios.length)

最后共五个音频先后循环播放,各延迟1000毫秒。当然可以通过调节毫秒数来达到更好的效果。