[英]JavaScript Updating a dictionary from array of values using array of keys
[英]Javascript: Creating dictionary array using variables for keys and values
我正在嘗試使用 .push() 方法從一些列表中創建字典。
我想要達到的結果是:
{
"departTo": {
1: 1.159,
2: 4.156,
3: 9.185,
3: 10.158,
4: 2.158
},
"departTo": {
1: 2.586,
2: 5.518,
3: 11.584,
3: 7.819,
4: 3.991
}
}
下面是我正在嘗試做的代碼示例:
console.group("Running Script 1...");
var select_array = [];
var arrive_from, info
var selection_type = ["departTo", "arriveFrom"];
var data_lists_depart = [[1, 1.159], [2, 4.156], [3, 9.185], [4, 10.158], [5, 2.158]];
var data_lists_arrive = [[1, 2.586], [2, 5.518], [3, 11.584], [4, 7.819], [5, 3.991]];
selection_type.forEach(function (selection, i) {
console.log("selection", i + ": ", selection);
if (selection === "departTo") data_lists = data_lists_depart;
else if (selection === "arriveFrom") data_lists = data_lists_arrive;
data_lists.forEach(function (data_list, ii) {
console.log(" data_list", ii + ": ", data_list);
key = data_list[0];
val = data_list[1];
select_array.push({selection: {key: val}});
})
})
console.log("select_array: ", select_array);
console.groupEnd("Running Script 1...");
我從上面的代碼得到的結果是:
[
{"selection": {"key": 1.159}},
{"selection": {"key": 4.156}},
{"selection": {"key": 9.185}},
{"selection": {"key": 10.158}},
{"selection": {"key": 2.158}},
{"selection": {"key": 2.586}},
{"selection": {"key": 5.518}},
{"selection": {"key": 11.584}},
{"selection": {"key": 7.819}},
{"selection": {"key": 3.991}}
]
任何幫助將其轉換為我需要的格式將不勝感激。 謝謝你。
您可以使用Object.fromEntries
和array#map
來生成結果 object。
const selection_type = ["departTo", "arriveFrom"], data_lists_depart = [[1, 1.159], [2, 4.156], [3, 9.185], [4, 10.158], [5, 2.158]], data_lists_arrive = [[1, 2.586], [2, 5.518], [3, 11.584], [4, 7.819], [5, 3.991]], values = [data_lists_depart, data_lists_arrive], result = Object.fromEntries(selection_type.map((name,i) => ([name, Object.fromEntries(values[i]) ]))); console.log(result);
顯而易見的解決方案
const departTo = [[1, 1.159], [2, 4.156], [3, 9.185], [4, 10.158], [5, 2.158]]; const arriveFrom = [[1, 2.586], [2, 5.518], [3, 11.584], [4, 7.819], [5, 3.991]]; const result = { departTo: Object.fromEntries(departTo), arriveFrom: Object.fromEntries(arriveFrom) }; console.log(result);
.as-console-wrapper{min-height: 100%;important: top: 0}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.