Javascript 将jQuery对象数组转换为新数组
当前我的Rails控制器正在返回一个对象数组:Javascript 将jQuery对象数组转换为新数组,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,当前我的Rails控制器正在返回一个对象数组: var _data = []; $.getJSON(my_url, function(data) { $.map(data, function(v) { _data.push([v.occurrences, v.period]) }); }); console.log(_data) => [] 当展开时,它如下所示: Array[4] 0:Object 1:Object 2:Object 3:Object
var _data = [];
$.getJSON(my_url, function(data) {
$.map(data, function(v) {
_data.push([v.occurrences, v.period])
});
});
console.log(_data) => []
当展开时,它如下所示:
Array[4]
0:Object
1:Object
2:Object
3:Object
0:Object
occurrences:1
period:1488499200000
展开时的单个对象如下所示:
Array[4]
0:Object
1:Object
2:Object
3:Object
0:Object
occurrences:1
period:1488499200000
我在映射对象的初始数组时遇到了问题,最终结果将是由每个对象的引用值和周期值组成的数组
最终结果应该是:
[[1488499200000, 1],[.., ..],[.., ..],[.., ..]]
所以我可以使用图表中的每个数组作为x轴和y轴点
我尝试过使用.map、.each(因为我在…)等,但运气不好
编辑:
这是我的图表数据:
var line_data2 = {
data: _data,
color: "#00c0ef"
};
$.plot("#myGraph", [line_data2], {
grid: {
hoverable: true,
borderColor: "#f3f3f3",
borderWidth: 1,
tickColor: "#f3f3f3"
},
series: {
shadowSize: 0,
lines: {
show: true
},
points: {
show: true
}
},
lines: {
fill: false,
color: ["#3c8dbc", "#f56954"]
},
yaxis: {
show: true,
},
xaxis: {
show: true,
mode: "time",
timeformat: "%m/%d/%Y"
}
});
可能有比这更优雅的解决方案,但这将为您提供我认为您需要的成形阵列
let _data = [
{occurrences: 1, period: 200},
{occurrences: 3, period: 300},
{occurrences: 6, period: 400}
];
let newData = _data.map((x)=>{
let arr = [];
arr.push(x.occurrences);
arr.push(x.period);
return arr;
});
console.log(newData);
您可以更进一步,简单地循环对象,而不是硬编码名称
let newData = _data.map((x)=>{
let arr = [];
for(let i in x){
arr.push(x[i]);
}
return arr;
});
可能是@Dhiraj的重复不是吗?你的代码是对的,我已经试过了,我可以看看
\u data
在哪里使用图表功能吗?@rails\u id哦,这很奇怪,好的,我会在编辑中发布我的图表(flot图表)代码above@asalgan我再次测试了,你的代码很好,我想,当分配给图表函数时,您可以尝试调试\u data
吗?因此,当我实现第一个解决方案时,我得到:[Array[2],Array[2],Array[2]],这看起来很准确,但由于某些原因,当我执行$.getJSON和console.log时,我得到:[]它扩展成4个对象,这听起来像是一个问题,那么我如何输入初始数据呢?这可能就是问题所在。我将自己的答案标记为删除,因为我无法在rails中测试。jQuery getJson应该为您将其解析为一个对象,这就是为什么我只回答了一个对象文本。不确定为什么贴图不能在对象数组上工作。