js for/in循环及其它

for in 循环不仅可以遍历对象的属性,还可以遍历数组。

Js 中为数组提供了多种遍历方式

const ary = ['a', 'b', 'c'];

// 最基本的方式, 只能遍历下标有序递增的数组
for (let i=0; i<ary.length; i++) {
  console.log(i, ary[i]);   // 0 a  1 b  2 c
}

// in:每遍历一次数组指针向后移动一位, 并得到当前数组元素值的下标, 可以通过 ary[key] 来访问数组元素值
for (let key in ary) {
  console.log(key, ary[key]);  // 0 a  1 b  2 c
}

// of:每遍历一次数组指针向后移动一位, 并得到当前数组元素的值, 处理二维数组时极为方便
for (let value of ary) {
  console.log(value);    // a b c
}

Js还为数组对象内置了多种迭代方法, 处理数组时极为方便

/**
 *  forEach(function)
 *  
 *  该方法接受一个函数作为参数, 该函数拥有两个参数, 分别为数组的值、键
 *  该方法没有返回值
 */

 ary.forEach((value, key) => {
    console.log(key, value); // 0 a  1 b  2 c
 })


/**
 * map(function)
 *  
 * 该方法接受一个函数作为参数, 该函数拥有两个参数, 分别为数组的值、键
 * 可以在传入的函数中返回相应的值,你每次迭代时返回的值会被map方法组装成一个新数组作为返回值返回
 */

 var result = ary.map((value, key) => {
    return value + '_runoob.com';
 })

 console.log(result); // ['a_runoob.com', 'b_runoob.com', 'c_runoob.com']
 
原文地址:https://www.cnblogs.com/wstmljf/p/10137499.html