2016-11-04 33 views
1

我在下面的格式創建一個數組的數組鍵和值:無法從在JavaScript

[ { Label : 1000.0, } , { November Payment : 1000.0, } , { Late fee : 50.0, } , { Additional Principle : 1000.0, } , ] 

現在我要取鑰匙,即標籤,月付款等,在一個單獨的數組或在變量(對於特定索引)及其在另一個數組中的值。

碼我曾嘗試:

var keys = []; 
    for (var key in ARY) { 
     if (ARY.hasOwnProperty(key)) { 
      kony.print("key--->"+key); 
      kony.print("value--->"+ARY[key]); 
      keys.push(key); 
     } 
    } 
    alert(keys); 
    } 

但我得到的是:

11-04 07:30:34.966: D/StandardLib(1874): key--->0  
11-04 07:30:34.966: D/StandardLib(1874): value--->[object Object]  
11-04 07:30:34.986: D/StandardLib(1874): key--->1  
11-04 07:30:35.016: D/StandardLib(1874): value--->[object Object]  
11-04 07:30:35.016: D/StandardLib(1874): key--->2  
11-04 07:30:35.025: D/StandardLib(1874): value--->[object Object]  
11-04 07:30:35.037: D/StandardLib(1874): key--->3  
11-04 07:30:35.037: D/StandardLib(1874): value--->[object Object]  
11-04 07:30:35.045: D/WindowsLib(1874): Calling Create createAlert - { alertType : 0.0, message : [ 0, 1, 2, 3, ] , } 

正如你看到的,我得到鍵0,1,2 ......

但爲什麼不標籤,11月付款等?

我不知道我在這裏做了什麼錯。

回答

1

您可以通過Array#forEach和對象的通過鍵(獲取鍵爲Object.keys)遍歷數組。

var data = [{ Label: 1000.0 }, { 'November Payment': 1000.0 }, { 'Late fee': 50.0 }, { 'Additional Principle': 1000.0 }]; 
 
      
 
data.forEach(function (a, i) { 
 
    Object.keys(a).forEach(function (k) { 
 
     console.log(i, k, a[k]); 
 
    }); 
 
}); 
 

 
// single item 
 
var key = Object.keys(data[0])[0]; 
 
//     index /// \\\ get the first key, of only one key exist 
 
console.log(key, data[0][key]);

+0

以及如何得到它特定指數,說0? – kgandroid

+0

@kgandroid,請參閱編輯。 –

+0

正在嘗試........... – kgandroid

0
var data = [[],{ 'Label': 1000.0 }, { 'November Payment': 1000.0 }, { 'Late fee': 50.0 }, { 'Additional Principle': 1000.0 }]; 
var keysArray = [] 
var valuesArray = []    
data.forEach(function (a, i) { 
    Object.keys(a).forEach(function (k) { 
     keysArray.push(k); 
     valuesArray.push(a[k]); 
    }); 
}); 
console.log(keysArray,valuesArray)