Javascript数组。先进的
我的php脚本中有JSON字符串,如下所示:Javascript数组。先进的,javascript,arrays,sorting,hasownproperty,Javascript,Arrays,Sorting,Hasownproperty,我的php脚本中有JSON字符串,如下所示: var r.co = { "A20018425":[ {"balance":"1390.31"}, // 1 {"balance":"1304.11"}, // 2 {"balance":"1188.11"},
var r.co = {
"A20018425":[
{"balance":"1390.31"}, // 1
{"balance":"1304.11"}, // 2
{"balance":"1188.11"}, // 3
{"balance":"1421.71"} // 4
],
"A25005922":[
{"balance":"1000"}, // 1
{"balance":"1000.86"}, // 2
{"balance":"986.32"}, // 3
{"balance":"988.96"}, // 4
{"balance":"980.26"}, // 5
{"balance":"980.16"} // 6 MAX
],
"A25005923":[
{"balance":"1001"}, // 1
{"balance":"1000.16"}, // 2
]
}
我不知道有多少AXXXXXXX元素以及它包含多少元素。
要获得我所拥有的元素,请使用以下代码:
var accounts = [];
for(var key in r.co) {
if(r.co.hasOwnProperty(key)) {
accounts.push(key);
}
}
现在我知道我的A元素长度了
var accounts_length = accounts.length; // 3 for example
现在我需要知道A中元素的最大长度:
var accounts_elements_length = [];
for (var c = 0; c < accounts.length; c++) {
accounts_elements_length.push(r.co[accounts[c]].length);
}
var accounts_elements_length_max = accounts_elements_length.max() // 6 For example
谢谢 代码:
var outputData = [];
for (var i = 0; i < 6; i++) { // filter should be - i < accounts_elements_length_max
var temp = {
'count': i + 1
};
for (var j = 0; j < accounts.length; j++) {
if (r[accounts[j]][i]) temp[accounts[j]] = r[accounts[j]][i].balance;
}
outputData.push(temp);
}
工作只是结合了您的算法:
var outputData=[];
用于(r.co中的var键){
if(r.co.hasOwnProperty(钥匙)){
var账户长度=r.co[key]。长度;
对于(var c=0;c
虽然完全可以做您想做的事情,但如果可能的话,我建议更改您的数据结构:您现在拥有的数据不适合进行有用/高效的处理。我无法更改输入数据。您到底想做什么?
outputData
的数据结构与r.co
var outputData = [];
for (var i = 0; i < 6; i++) { // filter should be - i < accounts_elements_length_max
var temp = {
'count': i + 1
};
for (var j = 0; j < accounts.length; j++) {
if (r[accounts[j]][i]) temp[accounts[j]] = r[accounts[j]][i].balance;
}
outputData.push(temp);
}
[{
"count": 1,
"A20018425": "1390.31",
"A25005922": "1000",
"A25005923": "1001"},
{
"count": 2,
"A20018425": "1304.11",
"A25005922": "1000.86",
"A25005923": "1000.16"},
{
"count": 3,
"A20018425": "1188.11",
"A25005922": "986.32"},
{
"count": 4,
"A20018425": "1421.71",
"A25005922": "988.96"},
{
"count": 5,
"A25005922": "980.26"},
{
"count": 6,
"A25005922": "980.16"}]