`

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

 
阅读更多
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);
详细出处参考:http://www.jb51.net/article/46953.htm

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 

使用 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 

推荐总是使用 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属性,那么获取object对象的length就可以通过遍历得到key值的数组的长度来获取啦~
keys.length;//"3"
分享到:
评论

相关推荐

    JS 5种遍历对象的方式

    for in 循环是最基础的遍历对象的方式,它还会得到对象原型链上的属性 // 创建一个对象并指定其原型,bar 为原型上的属性 const obj = Object.create({ bar: 'bar' }) // foo 为对象自身的属性 obj.foo =

    JS中如何轻松遍历对象属性的方式总结

    Object.keys() 方法会返回一个由一个给定对象的自身可枚举属性组成的数组,数组中属性名的排列顺序和使用 for…in 循环遍历该对象时返回的顺序一致 。如果对象的键-值都不可枚举,那么将返回由键组成的数组。 这是...

    javascript中for/in循环及使用技巧

    for/in – 循环遍历对象的属性 while – 当指定的条件为 true 时循环指定的代码块 do/while – 同样当指定的条件为 true 时循环指定的代码块 1. in运算符:要求其左边的运算数是一个字符串,或可以被转换为字符串...

    js 遍历对象的属性的代码

    js 遍历对象的属性的代码,遍历出对象的属性可以用for in语句使用方法

    JS for…in 遍历语句用法实例分析

    for…in 语句用于对数组或者对象的属性进行循环操作。 for (变量 in 对象) {  在此执行代码 } 这里的“变量”用来指定变量,指定的变量可以是数组元素,也可以是对象的属性。 举个例子: <!DOCTYPE html> <...

    vue 解决遍历对象显示的顺序不对问题

    今天小编就为大家分享一篇vue 解决遍历对象显示的顺序不对问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    JavaScript中for-in遍历方式示例介绍

    摘要:for-in遍历方式的循环计数器是字符串类型,遍历对象时为对象属性/方法名,遍历数组时为数组元素下标索引,与普通的for循环不同,for-in会将继承的属性/方法列出,这一点在使用时需要特别关注。 除了传统的for...

    JavaScript中for..in循环陷阱介绍

    大家都知道在JavaScript中提供了两种方式迭代对象: (1)for 循环; (2)for..in循环; 使用for循环进行迭代数组对象,... 案例一: 代码如下: //使用for..in循环遍历对象属性 varperson={ name: “Admin”, age: 21, a

    Javascript中的for in循环和hasOwnProperty结合使用

    与in操作符相比,for in 在循环对象的属性时也会遍历原型链,for in 不会读取不可枚举属性,如数组的length属性。 小结 当检测某个对象是否拥有某个属性时,hasOwnProperty 是唯一可以完成这一任务的方法,在 for in...

    JavaScript简单遍历DOM对象所有属性的实现方法

    本文实例讲述了JavaScript遍历DOM对象所有属性的实现方法。分享给大家供大家参考,具体如下: DOM对象的HTML: 复制代码 代码如下:<button id=”btnToggleState” onclick=”toggleStateManagement()”>...

    Javascript学习笔记之数组的遍历和 length 属性

    尽管数组在 Javascript 中是对象,但是不建议使用 for in 循环来遍历数组,实际上,有很多理由来阻止我们对数组使用 for in 循环。 因为 for in 循环将会枚举原型链上的所有属性,并且唯一阻止的方法是使用 ...

    JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解

    废话不多说了,直奔主题,你... //---------for-in 用来遍历非数组对象 var man ={hands:2,legs:2,heads:1}; //为所有的对象添加clone方法,即给内置原型(object,Array,function)增加原型属性,该方法很强大,也很危险

    Javascript学习笔记之 对象篇(四) : for in 循环

    如同 in 运算符一样,使用 for in 循环遍历对象属性时,也将往上遍历整个原型链。

    javascript 哈希表(hashtable)的简单实现

    首先简单的介绍关于属性的一些方法: 属性的枚举: for/in循环是遍历对象属性的方法。如 代码如下: var obj = { name : ‘obj1’, age : 20, height : ‘176cm’ } var str = ”; for(var name in obj) { str += name...

    JS遍历页面所有对象属性及实现方法

    for…in循环的Javascript示例: <html> <head> <title>一个使用到for...in循环的Javascript示例</title> </head> <body> [removed] // 创建一个对象 myObject 以及三个属性 ...

    数组Array进行原型prototype扩展后带来的for in遍历问题

    通常在JavaScript中用for与for in遍历数组结果是没有什么区别的,它的循环变量i都是从0开始的数组索引(for in如果遍历的是非数组对象的属性集合,则这个i就是属性名,或称之为key)。另外要注意一点是:用for in...

    【JavaScript源代码】JavaScript 中的六种循环方法.docx

    JavaScript 中的六种... } for...in循环可以用来遍历对象的可枚举属性列表(包括原型链上的属性) const myObject={}; Object.defineProperty(myobject,"a",{ //可枚举 enumerable:true, value:2, }) Object

    【JavaScript源代码】ES6的循环与可迭代对象示例详解.docx

     首先是经典的 for i 循环,它使你可以遍历数组或可索引的且有 length 属性的任何对象。 for(i=0;i;i++) { var thing = things[i] /* ... */ } 其次是 for ... in 循环,用于循环一个对象的键/值对。 for(key...

    深入浅析JavaScript中的in关键字和for-in循环

    1.in关键字 属性名 in 对象,用来判断某个属性在对象中是否存在与其严格相等的属性名,返回boolean值 ...2.for-in循环 for(var prop in obj){  //循环语句 } 取出对象的所有属性名,每次循环将其中一

Global site tag (gtag.js) - Google Analytics