黑马程序员_C#、JS和JQuery中的遍历问题
来源:互联网 发布:软件售后服务工作内容 编辑:程序博客网 时间:2024/05/18 03:12
一、
在C#中,foreach是专门用来遍历数组和集合元素的,foreach的工作原理是逐个枚举出数组或集合中的每个元素。
foreach 语法格式:
foreach(类型 迭代变量 in 集合/数组)
{
语句块
}
foreach是只读的,它直接读取数组中的元素,因此执行效率会比for高;foreach可以在长度未知的情况下进行遍历;在foreach循环体中,不能对所读取的元素值进行删除、修改等操作。
例如:
Int[] nums={3,6,8,9};
Foreach(int i in nums)
{
//i++; //这里不可以对i进行自加加自减减等修改的动作,否则会报错
Console.WriteLine(i);
}
Console.ReadKey();
for循环:首先计算一个初始序列,然后当某条件为真的时候,重复执行嵌套语句,并计算一个迭代的表达式序列,如果条件为false,则退出for循环,备注for循环的语句常用于遍历数组。
For(初始化序列;每次循环前要验证的条件;每次循环结束后要执行的语句)
{
语句块
}
for循环控制由编码者完全控制,所以可以在循环内部对遍历对象进行修改,只要能够保证逻辑不出错。for语句的内部实现上来说不会需要额外的空间和计算能力。这并不能说for语句比foreach更有效。需要根据情况来定。对于数组或者其它连续存储的数据结构,在循环内部使用索引器进行访问,一般会使用偏移进行定位,这确实比较高效。但是对于非连续存储的数据结构,由于使用索引器进行定位不是靠偏移,有额外的计算工作。当然也有人在for里边使用遍历器进行访问,这还不如使用foreach。所以能用foreach就用foreach,必须用for的时候才能用for。
二、
在JS中的array是一个动态的数组,长度不受限,与C#中相对比,JS中的数组没有下标和属性值的概念,而是叫key和value,在进行遍历时要加以区分:
(1)在JS中并没有foreach句法,但是有类似的用法,如下:
Var Dict=new Array();
Dict["ren"]="人";
Dict["guo"]="国";
Dict["wo"]="我";
Dict["hua"]="话";
For(var k in Dict){
Alert(k)
}
这种情况下,遍历得到的就是key值,也就是ren、guo、wo、hua
(2)而要得到value的值,语法和C#中一样,如下
Var Dict=new Array();
Dict["ren"]="人";
Dict["guo"]="国";
Dict["wo"]="我";
Dict["hua"]="话";
For(var k=0;k< Dict.length;k++){
Alert(k)
}
这种情况下,遍历得到的就是value值,即人、国、我、话。因此在JS中运用foreach和for语法得到的值是不一样的。
三、
在JQuery中,同样也有遍历,不过,值得庆幸的是,JQuery中将遍历进行了封装,使得遍历更加方便,如下:
var arr={3,5,8};
$.each(arr, function (item) { alert(item); });
var arr2=$.map(arr,function(item){return item * 2;});
alert(arr2);
在JQuery中的$.map有点类似C#中的for循环,可以遍历数组,并对元素进行修改操作。
而$.each则像C#中的foreach语法,仅限于读取操作。
var dict = { "tom": 20, "jerry": 50, "jim": 30, "jermy": 19, "wil": 30 };
$.each(dict, function (key, value) { alert(key + "的年龄是" + value); });
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------- 黑马程序员_C#、JS和JQuery中的遍历问题
- 黑马程序员_C#中的循环结构和结构体
- 黑马程序员_C#中的结构体和方法
- js中的遍历和jquery中的遍历
- 黑马程序员_C#中的优先级关系
- 黑马程序员_C#中的一些基本操作
- 黑马程序员_C#代码的调试问题
- 黑马程序员_c#
- 黑马程序员_C#中的一些常用函数总结
- 黑马程序员_C语言中的typedef使用小结
- 黑马程序员_C语言中变量作用域问题
- 黑马程序员_c#基础知识学习笔记:常量,枚举和结构
- 黑马程序员_C#中类和结构体的区别
- 黑马程序员_C语言基本运算和流程控制
- 黑马程序员_C语言的变量类型和枚举
- 黑马程序员_C语言的extern和static关键字
- 黑马程序员_C#中is和as的区别
- 黑马程序员_C#的基础结构和语法
- java直接输出Excel 页面实现下载
- JQuery筛选器
- PHP 类型&bool
- TreeMap类
- vim 命令备忘
- 黑马程序员_C#、JS和JQuery中的遍历问题
- poj 1001 -- Exponentiation (大数计算,模拟)
- Checkstyle
- 数据库连接池之超时总结 .
- Android强制设置横屏或竖屏
- sql常用语句(二)
- Netbeans使用SVN
- [图]SQL连接思维导图
- Windows常用组合键