[ js] - js和jquery中的遍歷對象和數(shù)組(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對象沒有l(wèi)ength屬性,通過keys.length間接得到對象長度

2、for,for/in遍歷數(shù)組

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

3、for/in數(shù)組和對象打印結(jié)果

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

打印結(jié)果:

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中參數(shù)1·元素值,參數(shù)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;
})
結(jié)果newArr :[3, 4, 5, 6]

map與forEach區(qū)別:map回調(diào)函數(shù)支持return返回值,就是把數(shù)組克隆一份,修改克隆之后的數(shù)組,原數(shù)組不變。

6、each(jquery)

//當(dāng)參數(shù)列表是一個時,代表元素的索引
//當(dāng)參數(shù)列表是兩個時,前面是索引,后面是元素值:
//$.each(arr, function (index,item) {
    $(".list>li").each(function (i, item) {
    })
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容