0
我有一个Ajax调用,其中即时通讯用户选择的颜色,并尝试将结果堆叠在一个数组中。我试图堆叠颜色,然后是几个月。无法将数据拆分成正确的数组
这里是我的代码至今:
var yr = element.created_date.slice(0, 4);
var month = parseInt(element.created_date.slice(5,7));
var color = element.colorvalue.split(",");
if (counts[color] === undefined) {
counts[color] = {};
}
if (counts[color][yr] === undefined) {
counts[color][yr] = {};
}
current_value = counts[color][yr][month];
if (current_value === undefined) {
// Doesnt exist yet, so add it
counts[color][yr][month] = 1;
} else {
// Exists, so increment by 1
counts[color][yr][month] = current_value + 1;
}
});
这是输出IM从此获得:
{"red, blue, yellow":{"2015":{"8":1}},"blue, red":{"2015":{"8":1}},"red":{"2015":{"7":1,"8":2}},"yellow":{"2015":{"10":1}},"blue":{"2015":{"9":1}},"yellow, red, blue":{"2015":{"7":1}}}
我使用.split( “”),认为它会理解把颜色分成自己的堆栈,但事实并非如此。这就是我期待的回归。
{"red":{"2015":{"1":23,"2":19,"3":32,"4":18,"5":12,"6":22,"7":23,"8":21,"9":16,"10":23,"11":22,"12":14},"2016":{"1":19,"2":9}},"yellow":{"2015":{"9":1,"12":1},"2016":{"1":16,"2":3}},"blue":{"2015":{"11":1,"12":2},"2016":{"1":5,"2":1}}}
这里是一个jsfiddle来展示我试图完成什么样的例子。有人会知道我错过了什么吗? https://jsfiddle.net/awo5aaqb/29/
哪来的的jsfiddle? – roullie
我在这里很糟糕,它是https://jsfiddle.net/awo5aaqb/29/ –
.split()返回一个数组,你应该遍历该数组以获得每种颜色。 – ijball