2017-09-07 23 views
-3

当属性键只是字符串而不是数字时,我怎样才能迭代对象中的每个奇数或偶数属性?如何迭代对象javascript中的每个奇数或偶数属性?

var object = { 
    odd1: 'a', 
    even2: 'b', 
    odd3: 'c', 
    even4: 'd' 
}; 

//编辑:钥匙不重复。

+2

是'odd'&“even'是关键的名字吗?一个对象不能有重复键 – brk

+0

这可能是ü帮助。 https://stackoverflow.com/questions/8119941/split-an-array-into-two-arrays-based-on-odd-even-position –

+0

对象就像词典:键是严格独特和无序的。 –

回答

0
  var object = { 
      odd1: 'a', 
      even2: 'b', 
      odd3: 'c', 
      even4: 'd' 
     }; 
     var od = []; var ev = []; 
     var len = Object.keys(object).length; 
     var keys = Object.keys(object); 
     for (var i = 0; i < len; i++) { 
     if(i%2 === 0){ 
      ev.push(keys[i]); 
     } 
     else { 
      od.push(keys[i]); 
     } 
     } 
     alert("odd values are: "+od+" and even values are: "+ev); 
+0

如果你的目的是分离偶数和奇数值,那么首先你需要将对象的关键字转换成一个数组,或者如果你需要它的值,你也可以做 – anitab

1

所以首先,你不能有两个同名的属性。对象属性没有顺序。最新的一个将覆盖以前的值。

要遍历属性,您可以使用Object#keys,它将返回对象的自己的属性。你可以看到对象中只有2个属性。

"use strict" 
 

 
var object = { 
 
    odd: 'a', 
 
    even: 'b', 
 
    odd: 'c', 
 
    even: 'd' 
 
}; 
 

 

 
Object.keys(object).forEach(prop => console.log(`${prop} - ${object[prop]}`));

+0

你能否为某物体中的奇偶顺序提供一些指示灯? – Teemu

+0

对象属性没有任何顺序,他们根本无法订购赔率和平均值... – Teemu

+0

“奇数和偶数”是一个订单。 – Teemu

0

迭代从对象中的所有奇数或偶数的属性,当属性 按键仅字符串,而不是数字?

这基本上是迭代整个对象。对于您可以使用for ..in

var object = { 
 
    '1': 'a', 
 
    '2': 'b', 
 
    '3': 'c', 
 
    '4': 'd' 
 
}; 
 
for (var keys in object) { 
 
    console.log(object[keys]) 
 
}

相关问题