博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
for/in 循环遍历对象的属性
阅读量:6159 次
发布时间:2019-06-21

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

hot3.png

for/in 语句循环遍历对象的属性。 

js中获取key得到某对象中相对应的value的方法:obj.key 
js中根据动态key得到某对象中相对应的value的方法有二: 
一、var key = "name1";var value = obj[key]; 
二、var key = "name1";var value = eval("obj."+key); 

JS代码:

var obj={"name":"wjy","age":26,"sex":"female"};//定义一个object对象  var keys=[];//定义一个数组用来接受key  var values=[];//定义一个数组用来接受value        for(var key in obj){              keys.push(key);              values.push(obj[key]);//取得value               alert(eval("obj."+key));//循环内逐一打印value值          }  alert(obj.name);//wjy  alert("keys is :"+keys+" and values is :"+values);  //keys is : name,age,sex and values is : wjy,26,female

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

Object.prototype.bar = 10;// 修改Object.prototype  var obj={"name":"wjy","age":26,"sex":"female"};//定义一个object对象    var keys=[];//定义一个数组用来接受key    var values=[];//定义一个数组用来接受value      for(var key in obj){        keys.push(key);        values.push(obj[key]);//取得value          }    alert("keys is :"+keys+" and values is :"+values);   //keys is : name,age,sex,bar and values is : wjy,26,female,10

2. 推荐总是使用 hasOwnProperty 方法, 这将会避免原型对象扩展带来的干扰:,只会访问对象独有的属性:

function allpro(obj){      var keys=[];       var values=[];        for(var key in obj){           //只遍历对象自身的属性,而不包含继承于原型链上的属性。          if (obj.hasOwnProperty(key) === true){              keys.push(key);                values.push(obj[key]);               }                         }      alert("keys is :"+keys+" and values is :"+values);    }  Object.prototype.bar = 1;// 修改Object.prototype  var o={"name":"wjy","age":26,"sex":"female"};//定义一个object对象   allpro(o);  //keys is : name,age,sex and values is: wjy,26,female

object对象没有length属性,所以不能直接通过for(var i=0;i<object.length;i++)的方式来访问,可以通过遍历得到key值的数组的长度来获取object自身属性的个数.

keys.length;//"3"

转载于:https://my.oschina.net/u/2331760/blog/509383

你可能感兴趣的文章
2017-2018-1 20165313 《信息安全系统设计基础》第八周学习总结
查看>>
《代码敲不队》第四次作业:项目需求调研与分析
查看>>
菜鸡互啄队—— 团队合作
查看>>
HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法...
查看>>
SparseArray
查看>>
第二章
查看>>
android背景选择器selector用法汇总
查看>>
[转]Paul Adams:为社交设计
查看>>
showdialog弹出窗口刷新问题
查看>>
java
查看>>
Vue.js连接后台数据jsp页面  ̄▽ ̄
查看>>
关于程序的单元测试
查看>>
mysql内存优化
查看>>
都市求生日记第一篇
查看>>
Java集合---HashMap源码剖析
查看>>
SQL优化技巧
查看>>
thead 固定,tbody 超出滚动(附带改变滚动条样式)
查看>>
Dijkstra算法
查看>>
css 动画 和 响应式布局和兼容性
查看>>
csrf 跨站请求伪造相关以及django的中间件
查看>>