亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 For 循環中創建 JavaScript 數組

在 For 循環中創建 JavaScript 數組

慕仙森 2023-03-18 16:21:24
我想用 for 循環創建下面的數組作為它的大var centres = {    1979: { x: width * 1 / 41, y: height / 2 },    1980: { x: width * 2 / 41, y: height / 2 },    1981: { x: width * 3 / 41, y: height / 2 },    ...}然后按如下方式訪問它:function nodeYearPos(d) {   return yearCenters[d.year].x;}我有以下代碼,但它只設置年份......  var yearCenters = Array.from(new Array(2020-1919+1), (x, i) => i + 1919);  for (year = 1919; year <= 2020; year++) {    coords = getCentres(year); // this returns an object in the form {x : x, y : y}    yearCenters[year] = coords;  }
查看完整描述

2 回答

?
慕神8447489

TA貢獻1780條經驗 獲得超1個贊

你可以像 gorak 評論的那樣做,但是使用 getCenters 函數


var yearCenters = Object.fromEntries(Array.from(new Array(2020-1919+1), (x, i) => [i + 1919, getCenters(i + 1919)]));

或者你也可以試試


var yearCenters = {};

for (year = 1919; year <= 2020; year++) {

  coords = getCenters(year);

  yearCenters[year] = coords;

}


查看完整回答
反對 回復 2023-03-18
?
繁花如伊

TA貢獻2012條經驗 獲得超12個贊

當您嘗試按年份獲取yearCenters數組(例如yearCenters[year])時,這將不起作用,因為年份不是數組中的索引。


我建議您首先將數組轉換為 JS 對象,以便對其進行索引可以使用多年。


見下面的片段 -


// Create obejct from array

var yearCenters = Object.fromEntries(Array.from(new Array(2020-1919+1), (x, i) => [i + 1919, null]))

     

// This loop remains same

for (year = 1919; year <= 2020; year++) {

    coords = getCentres(year); // this returns an object in the form {x : x, y : y}

    yearCenters[year] = coords; 

}


// Mock function

function getCentres(year) {

  return {

    x: Math.random() * 100,

    y: Math.random() * 100

  }

}


console.log(yearCenters)


查看完整回答
反對 回復 2023-03-18
  • 2 回答
  • 0 關注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號