2016-08-20 50 views
1

我對此問題持續了幾天。我無法根據給定的格式格式化值。使用數組填充參數 - 初學者

我有2個數組對象。

var name = ["sam","Anthony"]; 
var age = ["4","10"]; 

name的和age陣列可以在它包含更多的值。所以這意味着上面的2個數組是動態的。

我需要從這些數組中提取值並將它們添加到Item部分,如以下代碼所示。但是,由於此數組的大小是動態的,因此我無法對數組內容進行硬編碼。它可能包含更多的學生記錄。在那種情況下,在填充nameage數組的值後,我怎樣才能構造以下params變量?

var params = { 
    RequestItems: { 
     "Student": [ 
      { 
       PutRequest: { 
        Item: { 
         "name": "sam", 
         "age": "4" 

        } 
       } 
      }, 
      { 
       PutRequest: { 
        Item: { 
         "name": "Anthony", 
         "age": "10" 
        } 
       } 
      } 
     ] 
    } 
}; 

回答

2

使用map功能:

var names = ["sam", "Anthony"]; 
 
var age = ["4", "10"]; 
 

 
var params = { 
 
    RequestItems: { 
 
    "Student": names.map(function(c, index) { 
 
     return { 
 
     PutRequest: { 
 
      Item: { 
 
      "name": c, 
 
      "age": age[index] 
 
      } 
 
     } 
 
     }; 
 
    }) 
 
    } 
 
}; 
 
alert(JSON.stringify(params, null, 4));