簡體   English   中英

如何在動態創建 object 時在 JSON object 值中使用變量?

[英]How to use variable in JSON object value while creating an object dynamically?

我正在嘗試使用 for 循環動態創建一個 object 數組。 這個 object 的鍵值對的值來自不同的 arrays。 那么如何使用for循環動態創建object數組呢? 我嘗試了以下代碼塊,但它不起作用。

var anObj = [];
var charectors = ['Iron Man', 'Hulk', 'Thor']
var actors = ['Robert Downey, Jr', 'Mark Ruffalo', 'Chris Hemsworth']
for(let i=0; i<charectors.length; i++){
  anObj[i] = {
    charector : charectors[i],
    actor : actors[i]
  } 
}

上面的代碼拋出一個錯誤,因為我期望 object 的數組為

[
  {
    "charector":"Iron Man",
    "actor":"Robert Downey, Jr"
  },
  {
    "charector":"Hulk",
    "actor":"Mark Ruffalo"
  },
  {
    "charector":"Thor",
    "actor":"Chris Hemsworth"
  } 
] 

您也可以使用map

 var anObj = []; var charectors = ["Iron Man", "Hulk", "Thor"]; var actors = ["Robert Downey, Jr", "Mark Ruffalo", "Chris Hemsworth"]; const result = actors.map((actor, i) => ({ charector: charectors[i], actor: actors[i] })); console.log(result)

帶有for...of循環

 var anObj = []; var charectors = ["Iron Man", "Hulk", "Thor"]; var actors = ["Robert Downey, Jr", "Mark Ruffalo", "Chris Hemsworth"]; const result = []; for (let [i, actor] of actors.entries()) { result.push({ charector: charectors[i], actor: actors[i], }); } console.log(result);

在你的 for 循環中使用:而不是= 基本 object 屬性分配

 var anObj = [];
 var charectors = ['Iron Man', 'Hulk', 'Thor']
 var actors = ['Robert Downey, Jr', 'Mark Ruffalo', 'Chris Hemsworth']
 for(let i=0; i<charectors.length; i++){
   anObj[i] = {
     charector : charectors[i],
     actor : actors[i]
   } 
 }

使用將值推送到數組中


anObj.push({
    charector: charectors[i],
    actor: actor[i]
  })

你有兩個錯誤:

  1. 大括號內的賦值分隔符是冒號,而不是等號;

  2. 第二個源數組的名稱是演員,而不是演員。

    var anObj = [];
    var charectors = ['Iron Man', 'Hulk', 'Thor']
    var actors = ['Robert Downey, Jr', 'Mark Ruffalo', 'Chris Hemsworth']
    for(let i=0; i<charectors.length; i++){
      anObj[i] = {
        charector : charectors[i],
        actor : actors[i]
      } 
    }
    
    console.log(anObj);

暫無
暫無

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

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