javascript遍历数组,针对数组中每一个元素执行fn函数,并将数组索引和元素作为参数传递

时间:2021-10-22 06:14:24

遍历主要有两种方法,i++方法和in关键词法

var list = [1, 2, 3, 4, 5, 6,7,8];
//var l = list.length;
for(var i in list) {
    console.log(list[i]);
}
//[Finished in 0.3s]

var list = [1, 2, 3, 4, 5, 6,7,8];
//var l = list.length;
for(var i = 0; i < list.length; i++) {
    console.log(list[i]);
}
//[Finished in 0.5s]

var list = [1, 2, 3, 4, 5, 6,7,8];
var l = list.length;
for(var i = 0; i < l; i++) {
    console.log(list[i]);
}
//[Finished in 0.4s]

可见相对来说for in效率更高,故

function each(arr, fn) {
    // your implement
  for(index in arr){
    fn(arr[index],index);
  }
}

// 其中fn函数可以接受两个参数:item和index

// 使用示例
var arr = ['java', 'c', 'php', 'html'];
function output(item) {
    console.log(item)
}
each(arr, output);  // java, c, php, html

// 使用示例
var arr = ['java', 'c', 'php', 'html'];
function output(item, index) {
    console.log(index + ': ' + item)
}
each(arr, output);  // 0:java, 1:c, 2:php, 3:html

不过实际输出格式和期待有不同,仍待改进。