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

遍历主要有两种方法,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

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

时间: 2024-09-29 01:39:53

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

Javascript RegExp对象---获取url中某一个参数的值

RegExp 对象 RegExp 对象表示正则表达式,它是对字符串执行模式匹配的强大工具. 直接量语法 /pattern/attributes实例:window.location.href:http://localhost:8100/aspx/main/ServiceCenter_list.aspx?category_id=93&page=2要匹配到的category_id=93:/category_id=\d+/g 创建 RegExp 对象的语法: new RegExp(pattern, at

jQuery清除、停止队列中剩下(未执行的函数)

<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>jQuery清除.停止队列中剩下(未执行的函数)</title> <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js"> </script> <scrip

结构体中最后一个成员为[0]或[1]长度数组(柔性数组成员)的用法

结构体中最后一个成员为[0]长度数组的用法:这是个广泛使用的常见技巧,常用来构成缓冲区.比起指针,用空数组有这样的优势:(1).不需要初始化,数组名直接就是所在的偏移:(2).不占任何空间,指针需要占用int长度空间,空数组不占任何空间.“这个数组不占用任何内存”,意味着这样的结构节省空间:“该数组的内存地址就和它后面的元素地址相同”,意味着无需初始化,数组名就是后面元素的地址,直接就能当指针使用. 这样的写法最适合制作动态buffer,因为可以这样分配空间malloc(sizeof(struc

Js中的一个日期处理格式化函数

1 //日期时间原型增加格式化方法 2 3 Date.prototype.Format = function (formatStr) { 4 var str = formatStr; 5 var Week = ['日', '一', '二', '三', '四', '五', '六']; 6 7 str = str.replace(/yyyy|YYYY/, this.getFullYear()); 8 str = str.replace(/yy|YY/, (this.getYear() % 100)

如何实现在线查看进程中的变量以及执行调试函数

本程序实现了查看进程中的全局变量,以及执行进程中的调试函数的功能. 程序运行后,init_symbol函数会创建一个线程,此线程从标准输入读取 用户输入的变量名或函数调用命令,然后输出相应的结果. 例如, 输入 my_var,即可查看变量my_var的信息. 输入 my_func(1, "good", 0x123) 即可使用输入的参数执行函数my_func 目前最大支持8个参数,且每个参数size必须等于sizeof(long) my_func函数的各个入参就是一个符合要求的例子. 输

php自定义函数及内部函数----数组处理函数

一.增加元素 (1)array_push() : 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度. 注释:如果用 array_push() 来给数组增加一个单元,还不如用 $array[] =,因为这样没有调用函数的额外负担. 注释:如果第一个参数不是数组,array_push() 将发出一条警告.这和 $var[] 的行为不同,后者会新建一个数组. $a=array("a"=>"xiao","b"=>&q

Javascript语法,变量类型,条件,循环语句,函数,面向对象

1.JavaScript代码革两种存在形式: <!-- 方式一 --> <script type='txt/javascript' src='/js/comment.js'></script> <!-- 方式二 --> <script type='txt/javascript'> js代码内容 </script> 方式一可以有效提高代码的重用性 2.JavaScript代码存放位置 HTML的head中 HTML的body代码块底部(

javascript中把一个数组的内容全部赋值给另外一个数组

如:var a = [1,2,3,4];var b= [];b = a;这个不是把值赋值过去而是b作为a的引用,b改变的是a如何b指向的是一个新数组,a把元素值全部赋值过去? 1.普通数组可以使用   var b = [].concat(a); ----------------------------------------------------------------------------------------------------- 2.我遇到一个jquery对象类型的数组是[Obj

什么情况下使用break关键字? 什么情况下使用Continue关键字? Java如何声明一个数组?JS如何声明一个数组?如何获取数组长度? 如何遍历数组?

什么情况下使用break关键字?什么情况下使用Continue关键字? Break Break关键用于终止循环. 示例: 1 2 3 4 5 6 for (int i = 0; i < 10; i++) {   if (i == 4) {     break; //终止循环,后面的循环不再执行   }   System.out.println(i); } Continue Continue关键字用于终止本次循环,其它循环继续. 示例: 1 2 3 4 5 6 7 for (int i = 0;