js 总结各种循环数组

for … of

想必大家用的最多的循环方法(可遍历map,object,array,set string等)

//遍历数组
   let arr=["a","b","c","d"];
    for (let item of arr){
        console.log(item)
    }
//结果为a b c d

但是无法遍历对象属性

const abc =  {
    a:'1',
    b:'2',
    c:'3'
}
for (const k of abc){
    console.log(k)
}
// 会报错的

可以使用break,continue和return 终止循环

for … in

循环遍历的值都是数据结构的键值,遍历对象

let obj = {a: '1', b: '2', c: '3'}
let array = [{text:1},{text:2}]
for (let o in obj) {
    console.log(o)    //遍历的实际上是对象的属性名称 a,b,c
    console.log(obj[o])  //这个才是属性对应的值1,2,3
}
for (let o in array ) {
    console.log(o)    //遍历的实际上是index索引0,1
    console.log(array [o])  //这个是数组的对应每个对象的值 "text:1" ,"teaxt:2"
}

可以使用break,continue和return 终止循环

foreach

对数组的每一个元素执行一次提供的函数,不能使用return、break等中断循环,不改变原数组,无返回值undefined。

let arr = ['a', 'b', 'c']
arr.forEach(function (val, idx, arr) {
    console.log(val + ', index = ' + idx) // val是当前元素,index当前元素索引,arr数组
    // a 0  ['a', 'b', 'c']
    // b 1  ['a', 'b', 'c']
    // c 2  ['a', 'b', 'c']
    console.log(arr)
})

map

用法跟foreach一样,区别的是map可以返回新的数组,并且不影响原来的数组

let arr = ['a', 'b', 'c']
let value = arr.forEach(function (val, idx, arr) {
    console.log(val + ', index = ' + idx) // val是当前元素,index当前元素索引,arr数组
    console.log(arr)
    return val + '1'
})
console.log(value) // ['a1' ,'b1' , 'c1'] 原数组拷贝了一份,并进行了修改
console.log(arr) // [ 'a' , 'b' , 'c' ] 原来的数组不会改变

for

之前一直用的那种,不多说了

let arr = ['a', 'b', 'c']
for(var i=0;i<arr.length;i++){
	console.log(arr[i])
}

你可能感兴趣的:(js 总结各种循环数组)