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']