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