簡體   English   中英

使用數組和 object 形成對象數組

[英]Form Array of objects using an array and an object

我有一個 object 和以下類型的數組

var sourceObject = { "item1" : 15 , "item2" : 20 " }
var feature =  ["field1", "field2" ] 

我正在嘗試將上述 object 轉換為對象數組。 object 中的項目數以及數組將相同

結果對象數組應如下所示:


var result = [ { "name" : "field1" , "value" : 15 } , {  "name" : "field2" , "value": 20 }]

最終目標是從 sourceObject 讀取它以獲取每個值,然后從“特征”數組中選擇每個值以形成 object

到目前為止我嘗試過的方法:

 let result = [];
 for (let  value of Object.values(sourceObject)) {
    let row = { "field" : "XYZ" , "value": value };
    tableData.push(row);
 }

遍歷sourceObject的鍵,然后使用Array.map()

 var sourceObject = { "item1": 15, "item2": 20 } var feature = ["field1", "field2"] var result = Object.keys(sourceObject).map((key, index) => { return { name: feature[index], value: sourceObject[key] } }); console.log(result);

您的 object 並不總是保證順序,因此使用.values().keys()等...不一定總是保證您的結果。 相反,您可以使用正則表達式從fieldN字符串中獲取數字。 這里N代表您要從itemN中檢索的 itemN。 使用它,您可以.map()每個fieldN從您的sourceObject到 object 。

請參見下面的示例:

 const sourceObject = { "item1": 15, "item2": 20 }; const feature = ["field1", "field2" ]; const res = feature.map((name, i) => { const [n] = name.match(/\d+$/g); const value = sourceObject[`item${n}`]; return {name, value}; }); console.log(res);

暫無
暫無

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

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