gpt4 book ai didi

JavaScript:创建一个将多个键映射到一个值的映射?

转载 作者:行者123 更新时间:2023-12-05 03:12:28 24 4
gpt4 key购买 nike

我有一个键列表和一个值。例如:

keys = ["keyA", "keyB", "keyC"];

value = 100;

我正在尝试创建一个函数来创建 map ,以便:

map["keyA"]["keyB"]["keyC"] = 100;

我认为这是基于给定答案的最佳数据结构 here :

无论如何,挑战我的部分是我需要一个函数来为任意数量的键创建一个映射。我试过循环执行此操作,但无法正常工作,因为我不知道如何访问我的 map 的不同级别,但它也感觉很草率:

for(var i=0; i<keys.length; i++){
for(var j=0; j<i; j++){
maps[keys[0]]...[keys[j]] = {};
if(j+1 === i){
maps[keys[0]]...[keys[j]][keys[i]] = value;
}
}
}

如何创建我的 map ?

最佳答案

您可以尝试存储对最后创建的内部对象的引用,并在循环中更深入,以使其在线性时间内完成:

// Input data:
var keys = ["keyA", "keyB", "keyC", "keyD", "keyE"];
var value = 100;

// Algorithm:
var result = {};
var last = result;

for (var i = 0; i < keys.length - 1; i++)
{
last = (last[keys[i]] = {});

// can be change to a two-liner:
// last[keys[i]] = {};
// last = last[keys[i]];
}
last[keys[keys.length - 1]] = value;

// Output:
document.body.innerHTML = JSON.stringify(result);
document.body.innerHTML += "<br/><br/>" + result["keyA"]["keyB"]["keyC"]["keyD"]["keyE"];

关于JavaScript:创建一个将多个键映射到一个值的映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33470428/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com