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