js和jquery中的遍历对象和数组(forEach,map,e

2017-02-07  本文已影响2021人  Lusia_

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);  
   }                 
}  

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) {
    })
上一篇下一篇

猜你喜欢

热点阅读