我有一個返回服務器: 迭代雖然JSON數組中p5.js
我想通過在p5.js
var ms = []
function preload() {
var url ='https://dest/url'
ms = loadJSON(url)
}
這個數據,我將返回一個數組,但迭代它似乎沒有回報任何明智的東西。
但是,如果我相同的數據粘貼到的JavaScript控制檯我得到不同的數據:
怎麼做,我不是遍歷這個數據(而不是加載作爲數組)或將其轉換爲數組?
我有一個返回服務器: 迭代雖然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) {
if (!array) {
array = [a[key]];
} else {
array.push(a[key]);
}
}
console.log(array); // [ {'time': .... }, {...}, .. ]
毫秒只是對象的關鍵爲{0:{'時間':...},1:...} – jettpleyn
是 - 謝謝。 javascript數據結構的奇怪永遠不會令我驚歎, –
你越來越對象的數組,這裏是你如何可以簡單地重複他們
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"} ];
for(obj of data){
console.log("time and rate: ", obj.time, obj.rate)
}
啊 - 但在你的情況下,你正在創建一個數組。我的例子沒有。 –
正如其他人所指出的在評論中,你所擁有的本質上是一個數組或類似數組的對象,可以更加精確地將它們轉換爲ap羅珀陣列像這樣:
ms.length = Object.keys(ms).length;
var msArray = Array.prototype.slice.call(ms);
悲傷 - 但它不起作用。 –
是的,我可能已經有點快速發佈這個,因爲這種方法工作您的對象需要有一個長度屬性。我用一種方式更新了這篇文章,以使其發揮作用。 – Hyddan
jettpleyn有實際工作在P5的唯一答案。
最終雖則 - 我想通了,我可以讓我的生活更容易通過改變JSON從服務器返回一個對象包含數組,而不是一個陣列直接
{ "data":
[{"time":"85579.54189181328","rate":177.66287},{"time":"81978.61475682259","rate":177.66287},{"time":"78377.54175782204","rate":177.66287},{"time":"74776.58741879463","rate":177.66287},{"time":"71175.57481980324","rate":177.66287},{"time":"67574.59330582619","rate":177.66287},{"time":"63973.427922964096","rate":177.66287},{"time":"60372.39295697212","rate":177.66287},{"time":"56771.37366294861","rate":177.66287},{"time":"53170.276379823685","rate":177.66287},{"time":"49569.180530786514","rate":177.66287},{"time":"45968.02240085602","rate":177.66287},{"time":"42365.825628995895","rate":177.66287},{"time":"38764.64792180061","rate":177.71416},{"time":"35163.241872787476","rate":177.71416},{"time":"31562.00651884079","rate":177.72556},{"time":"27960.898827791214","rate":177.73126},{"time":"24359.687824964523","rate":177.67998},{"time":"20758.03328180313","rate":177.67998},{"time":"17156.808887004852","rate":174.53839},{"time":"13555.605601787567","rate":174.9276},{"time":"9954.546007871628","rate":175.35431},{"time":"6353.40945982933","rate":175.96582},{"time":"2752.3464789390564","rate":175.84541}]
}
這似乎是一個數組。一個數組只是一個帶有索引數字鍵的JS對象,基本上是一個'length'字段。 – Carcigenicate
它是一個數組,你可以用它證明**的console.log(MS [0] .rate)** –
它不是一個數組恐怕 ms.length是不確定的 但 MS [0] .rate作品 –