我有一個 JSON 資料,如下所示:
{
"chart":[
[
1627776011000,
28
],
[
1627776371000,
38
],
[
1627776731000,
48
],
...
]
}
我想在哪里使用chart.js之該資料1627776011000 ... 是x軸值和28 ... 有y軸值。
我知道我可以用陣列來做 push
const myArr = JSON.parse(dataJSON);
const data = [];
const labels = [];
myArr.chart.forEach((item) => {
labels.push(item[0]);
data.push(item[1]);
});
但是有沒有更好的方法,例如使用map?
uj5u.com熱心網友回復:
您可以通過兩次呼叫來實作map():
const labels = myArr.chart.map(el => el[0]);
const data = myArr.chart.map(el => el[1]);
uj5u.com熱心網友回復:
在我看來,這就像一個發明的問題。
如果您的資料點只是 x 和 y 值,那么說第一個陣列元素是 x 而第二個是 y 沒有錯。
有些人會爭辯說你應該讓它成為一個具有像xValue和這樣的屬性的物件yValue。
然而,任何一種情況下的任何好處或壞處都是微不足道的。您可以想象有人說 Object 版本更具可讀性。javascript 運行時(至少 V8)更難優化物件版本:https : //v8.dev/blog/elements-kinds
除非你已經測量過它,而且它很重要,否則它并不重要。
uj5u.com熱心網友回復:
您可以.reduce()按如下方式使用:
const myArr = {
"chart":[
[
1627776011000,
28
],
[
1627776371000,
38
],
[
1627776731000,
48
]
]
};
const [labels, data] = myArr.chart.reduce((acc,cur) => [
[...acc[0], cur[0]],
[...acc[1],cur[1]]],
[[],[]]);
console.log( labels, data );
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/384542.html
標籤:javascript 数组 目的 图表.js
