2017-09-07 25 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]) 
 
}

相關問題