簡體   English   中英

在JS循環中動態創建JSON密鑰

[英]Create dynamically JSON keys in a JS loop

我有這個帶有JSON變量的Javascript代碼,效果很好。

var valuesJSON = {
    projects: {
        0: {value: 0, price: 0},
        1: {value: 0, price: 0},
        2: {value: 0, price: 0},
        3: {value: 0, price: 0},
        4: {value: 0, price: 0},
        5: {value: 0, price: 0},
        6: {value: 0, price: 0},
        7: {value: 0, price: 0},
    }
  }

我想讓它更具可伸縮性,以便它可以讀取常量中的條目數。 我嘗試了以下內容,但不允許變量中的for循環。 有任何想法嗎?

const NUM_PROJECTS = 8
var valuesJSON = {
    projects: {
        for (var i=0; i < NUM_PROJECTS; i++) {
            i: {value: 0, price: 0},
        }
    }
  }

您需要使用for循環向projects添加屬性。 需要使用括號表示法 ,因為variable被用作鍵。

//Create object
var valuesJSON = {
   projects : {}
}

//Iterate and add properties
for (var i = 0; i < NUM_PROJECTS; i++) {
    valuesJSON.projects[i] = {
        value: 0,
        price: 0
    }
}

您可以使用NUM_PROJECTS進行迭代,並生成具有所需結果的新屬性。

 const NUM_PROJECTS = 8 var valuesJSON = { projects: {}}; for (var i = 0; i < NUM_PROJECTS; i++) { valuesJSON.projects[i] = { value: 0, price: 0 }; } console.log(valuesJSON); 

你首先制作一個javascript對象。

var object = {};

然后,您可以通過數組訪問編輯屬性(object.something)。

 object.something == object['something']

所以要在對象中設置一個值,你可以這樣做

  object['something'] = array_counter

不知道你想要什么,所以我將arrayinfying添加到一個對象並將其作為對象放入。

 var json = {} var projects = {}; var projectsArr = []; for(c=0;c<100;c++) { var project_entry = { name: 'project'+c, a:c+1, b:c*2 }; projects[project_entry.name] = project_entry; projectsArr.push(project_entry); } json['projects'] = projects; json['projects_as_array'] = projectsArr; console.log(JSON.stringify(json,null,2)); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM