我已经按以下格式创建了一个数组:
[ { Label : 1000.0, } , { November Payment : 1000.0, } , { Late fee : 50.0, } , { Additional Principle : 1000.0, } , ]
现在我想在一个单独的数组或变量(对于特定索引)中获取密钥,即Label,November Payment等,以及它们在另一个数组中的值。
我尝试过的代码:
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月付款等?
我不知道我在这里做错了什么。
答案 0 :(得分: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]);
答案 1 :(得分: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)