javascript中无法从数组中获取键和值

Cannot get key and value from an array in javascript

本文关键字:获取 键和值 数组 javascript      更新时间:2023-09-26

我创建了一个数组,格式如下:

[  { 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,  ] ,  } 

如你所见,我得到key为0,1,2,…

但为什么不是标签,十一月付款等?

我不知道我做错了什么

您可以使用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]);

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)