Javascript 在p5.js中迭代JSON数组

Javascript 在p5.js中迭代JSON数组,javascript,arrays,json,p5.js,Javascript,Arrays,Json,P5.js,我有一个服务器,它返回: 我想在p5.js中遍历这些数据 var ms = [] function preload() { var url ='https://dest/url' ms = loadJSON(url) } 我希望返回一个数组,但它似乎没有返回任何合理的结果 但是,如果将相同的数据粘贴到Javascript控制台中,则会得到不同的数据: 我如何迭代此数据(它未作为数组加载)或将其转换为数组?我认为您的意思是: var array; for (var key in ms

我有一个服务器,它返回:

我想在p5.js中遍历这些数据

var ms = []

function preload() {
  var url ='https://dest/url'
  ms = loadJSON(url)
}
我希望返回一个数组,但它似乎没有返回任何合理的结果

但是,如果将相同的数据粘贴到Javascript控制台中,则会得到不同的数据:

我如何迭代此数据(它未作为数组加载)或将其转换为数组?

我认为您的意思是:

var array;
for (var key in ms) {
   if (!array) {
      array = [a[key]];
   } else {
      array.push(a[key]);
   }
}
console.log(array); // [ {'time': .... }, {...}, .. ]
我想你的意思是:

var array;
for (var key in ms) {
   if (!array) {
      array = [a[key]];
   } else {
      array.push(a[key]);
   }
}
console.log(array); // [ {'time': .... }, {...}, .. ]

您将获得一个对象数组,下面是如何简单地迭代它们

var data=[{time:12345,rate:12345.12},{time:12345,rate:12345.12},{time:12345,rate:12345.12},{time:12345,rate:12345.12},{time:12345,rate:12345.12}]; 数据域{ console.logtime和费率:,obj.time,obj.rate
} 您将获得一个对象数组,下面是如何简单地迭代它们

var data=[{time:12345,rate:12345.12},{time:12345,rate:12345.12},{time:12345,rate:12345.12},{time:12345,rate:12345.12},{time:12345,rate:12345.12}]; 数据域{ console.logtime和费率:,obj.time,obj.rate
} 正如其他人在评论中指出的那样,更精确地说,您所拥有的基本上是一个数组或类似数组的对象,并且这些对象可以很容易地转换为适当的数组,如下所示:

ms.length = Object.keys(ms).length;
var msArray = Array.prototype.slice.call(ms);

正如其他人在评论中指出的那样,更精确地说,您所拥有的基本上是一个数组或类似数组的对象,并且这些对象可以很容易地转换为适当的数组,如下所示:

ms.length = Object.keys(ms).length;
var msArray = Array.prototype.slice.call(ms);

杰特普林有唯一一个在P5中有效的答案

但最终,我明白了,通过将服务器返回的JSON更改为包含数组而不是直接包含数组的对象,我可以让我的生活变得更轻松

{数据: {时间:81978.61475682259,速率:177.66289.289,速率:177.66287},{,{时间:78377.54577.5454787878787878787.5457579.54579.54189189181328.54189181328.5.541891818,速率:177.6628287},,{,{时间:819.617.61577.6157575757575757575757575757575757575757575758585858585825252525252525259,9,速率,速率,速率:259,速率:259,速率:259,速率:1777.289.289,,,,,,,{,,,{,,{时间:28287.287.287.287.287.287.287.287.287.287,速率,速率:177.,比率:177.66287},[时间:53170.27637982823685,速率:177.66282885,速率:177.66287},{,{时间:53170.27276363797878787},{,{时间:49569.1807878786514,速率:17777777777777.37777.37777.377878787878787,时间:5677777777777777777.787.787.787.7878787.78787,时间:567.7878787878787878787,时间:565,时间:569.5757575757577.787.787.787.7878787.78787,速率:567.377.787,速率:567,速率:567.377.377.377.377,速率:567.377.377,速率:567.377.377.377.377地址:177.72556},{时间:24359.687824964523,速率:177.67998},{{时间:24359.687878782424964523,速率:177.67998},{,{时间:207758.03328180808.033281818013,速率:1770.8380808080787878787878787878787878787,{,{{时间:2760.2760.2760.2760.2760.2760.2760.897878782760.89897878787878787878787878787878787878787878787.279.276.276.78787878787878787878787},,,{,{,{,{,{,{,{,{,{,{,{时间:时间:时间:时间:时间:20758.时间:27758.27758.279:279:279:27541}]
} 杰特普林有唯一一个在P5中有效的答案

但最终,我明白了,通过将服务器返回的JSON更改为包含数组而不是直接包含数组的对象,我可以让我的生活变得更轻松

{数据: {时间:81978.61475682259,速率:177.66289.289,速率:177.66287},{,{时间:78377.54577.5454787878787878787.5457579.54579.54189189181328.54189181328.5.541891818,速率:177.6628287},,{,{时间:819.617.61577.6157575757575757575757575757575757575757575758585858585825252525252525259,9,速率,速率,速率:259,速率:259,速率:259,速率:1777.289.289,,,,,,,{,,,{,,{时间:28287.287.287.287.287.287.287.287.287.287,速率,速率:177.,比率:177.66287},[时间:53170.27637982823685,速率:177.66282885,速率:177.66287},{,{时间:53170.27276363797878787},{,{时间:49569.1807878786514,速率:17777777777777.37777.37777.377878787878787,时间:5677777777777777777.787.787.787.7878787.78787,时间:567.7878787878787878787,时间:565,时间:569.5757575757577.787.787.787.7878787.78787,速率:567.377.787,速率:567,速率:567.377.377.377.377,速率:567.377.377,速率:567.377.377.377.377地址:177.72556},{时间:24359.687824964523,速率:177.67998},{{时间:24359.687878782424964523,速率:177.67998},{,{时间:207758.03328180808.033281818013,速率:1770.8380808080787878787878787878787878787,{,{{时间:2760.2760.2760.2760.2760.2760.2760.897878782760.89897878787878787878787878787878787878787878787.279.276.276.78787878787878787878787},,,{,{,{,{,{,{,{,{,{,{,{时间:时间:时间:时间:时间:20758.时间:27758.27758.279:279:279:27541}]
}这似乎是一个数组。数组只是一个JS对象,带有数字键作为索引,基本上是一个长度字段。这是一个数组,您可以用console.logms[0]来证明它。rate它不是一个数组,我恐怕ms.length尚未定义ms[0].rate worksms似乎是一个数组。数组基本上只是一个JS对象,带有索引的数字键和长度字段。这是一个可以用console.logms[0]证明的数组。rate worksms不是一个数组,我担心ms.length尚未定义ms[0]。rate worksms只是一个对象,键为{0:{time':…},1:}是的,谢谢。javascript数据结构的奇特性总是让我感到惊讶,ms只是一个对象,其键为{0:{'time':…},1:…}是的,谢谢。javascript数据结构的奇怪性总是让我感到惊讶,啊-但是在你的例子中,你正在创建一个数组。我的例子没有。啊-但是在你的例子中,你正在创建一个数组。我的例子没有。是的,我可能会很快发布这个,因为这个方法需要有一个合适的长度
泰。我用一种方法更新了帖子。是的,我可能发布这篇文章有点快,因为要使用这种方法,你的对象需要有一个长度属性。我用一种方法更新了这篇文章。