博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
for in遍历对象属性注意事项
阅读量:6899 次
发布时间:2019-06-27

本文共 778 字,大约阅读时间需要 2 分钟。

// 使用 for in 循环遍历对象的属性时,原型链上的所有属性都将被访问:

Object.prototype.bar = 10;// 修改Object.prototype
var obj = {x:1,y:2,z:3};
var keys = [],values = [],i=0;
for(i in obj){
// console.log(i);
keys.push(i);
values.push(obj[i])
console.log(i+":"+obj[i]);//遍历对象属性值的方法
console.log(i+":"+eval('obj.'+i));//遍历对象属性值的方法
}
console.log(keys);//["x", "y", "z", "bar"]
console.log(values);//[1, 2, 3, 10]
// 推荐总是使用 hasOwnProperty 方法,这将会避免原型对象扩展带来的干扰:
function allpro(obj){
var keys = [],values = [];
for (var key in obj){
//只遍历对象自身的属性,而不包含继承于原型链上的属性
if(obj.hasOwnProperty(key) === true){
keys.push(key);
values.push(obj[key]);
}
}
console.log(keys+';'+values);
}
var objdata = {name:'aaa',age:'23',sex:"girl"};
allpro(objdata);//name,age,sex;aaa,23,girl

转载于:https://www.cnblogs.com/studyh5/p/9216375.html

你可能感兴趣的文章
我的友情链接
查看>>
烂泥虚拟机VMware 8有关USB使用的心得与体会
查看>>
SpringCloud(第 053 篇)CentOS7 中用 Docker 部署一个简单的基于 Eureka 服务治理发现的项目...
查看>>
每日阅读 2017-01-09
查看>>
我的友情链接
查看>>
关于不能上网
查看>>
并发容器之CopyOnWriteArrayList
查看>>
SQLServer 表分区实验 操作步骤
查看>>
双飞翼布局
查看>>
Fedora Or Ubuntu ?
查看>>
C实现二叉树BTree基本操作
查看>>
用VS2010编译luabind
查看>>
MacOS 安装多版本PHP方法
查看>>
×××部署推进信息化发展工作
查看>>
SecureCRT 端口转发突破防火墙访问内网机器
查看>>
Kylin 2.0 升级总结
查看>>
My97日期控件
查看>>
理解关系数据库中的ACID、事务、隔离级别
查看>>
Rinetd
查看>>
安卓电子市场开放下载VMware View 客户端
查看>>