[ js] - js和jquery中的遍历对象和数组(forEach,map,each,for/in)

1、for/in遍历对象

for(var key in obj){    
    keys.push(key);    
    values.push(obj[key]);//取value      
}    

上述,原型链上的所有属性也都将被访问


解决方法:hasOwnProperty
只遍历对象自身的属性,而不包含继承于原型链上的属性

for(var key in obj){   
  if (obj.hasOwnProperty(key) === true){
      keys.push(key);  
   }                 
}  
  • object对象没有length属性,通过keys.length间接得到对象长度

2、for,for/in遍历数组

for (x in mycars){}
for(var i=0;i<arr.length;i++){}

3、for/in数组和对象打印结果

for (x in person) {
    console.log(x + "=" + person[x]);
}

打印结果:

var person = {fname:"John",lname:"Doe",age:25};
        fname=John
        lname=Doe
        age=25
var mycars = new Array("Saab","Volvo","BMW");
          0=Saab
          1=Volvo
          2=BMW

4、forEach (javascript语法)

其中function中参数1·元素值,参数2·索引值

var arr=['a','b',12];
arr.forEach(function(item,index){
    console.log(index+'-'+item);
 });
输出:
0-a 
1-b 
2-12 

5、map

var arr=[1,2,3,4];
var newArr = arr.map(function(val,index){
    return val+2;
})
结果newArr :[3, 4, 5, 6]

map与forEach区别:map回调函数支持return返回值,就是把数组克隆一份,修改克隆之后的数组,原数组不变。

6、each(jquery)

//当参数列表是一个时,代表元素的索引
//当参数列表是两个时,前面是索引,后面是元素值:
//$.each(arr, function (index,item) {
    $(".list>li").each(function (i, item) {
    })
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 2016.9.9 第6章 原型与面向对象 原型虽然是定义对象的一种很方便的方式,但它的本质依然是函数特性。 使用原...
    如201608阅读 711评论 0 0
  • 官方中文版原文链接 感谢社区中各位的大力支持,译者再次奉上一点点福利:阿里云产品券,享受所有官网优惠,并抽取幸运大...
    HetfieldJoe阅读 2,621评论 9 22
  • 文/晴汕 暮云合璧,朦胧淡月,窗透清寒。孤灯伏案,提笔难落,谁惊醒笔尖?四季流转,荒草河畔,落叶已疲倦。惊回首,故...
    晴汕阅读 271评论 0 0
  • 忆当初月下挽手相行 两身影被光拉的很长很长 你拢着背走得不快 我直着腰板也陪你走得很慢 曾与你开玩笑 道 要不要试...
    陈小丘阅读 301评论 0 0
  • 夜深,看窗外都已漆黑一片。一周浮躁的心终于平静下来!还有一个月就到婚期了,内心里并没有新婚燕尔的憧憬,更多的是想要...
    辣小妞阅读 129评论 0 0