[英]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.