gpt4 book ai didi

javascript - Javascript 中的动态切换

转载 作者:行者123 更新时间:2023-11-30 20:28:03 25 4
gpt4 key购买 nike

我想在 javascript 中用动态内容做一个切换,我举个例子:

switch(terrain) {
case "Plains":
terrain = Plains.create(newPosition);
break;
case "Mountains":
terrain = ImpassableMountain.create(newPosition);
break;
case "Hills":
terrain = Hills.create(newPosition);
break;
case "Forest":
terrain = Forest.create(newPosition);
break;
case "River":
terrain = River.create(newPosition);
break;
default:
};

所以如果我想添加一个新地形,例如海洋,我希望它会自动更新。我正在考虑将所有地形放在一个数组中

var terrainArray = ["Plains","Mountains","Hills","Forest","River","Ocean",...]

但我不知道如何以最优化的方式将其放入开关中,因为如果我尝试

for(var i=0;i<terrainArray.length;i++){
if(terrain==terrainArray[i]){
Terrain.create(newPosition);
}
}

它不会被优化,因为它会遍历整个数组。

我还需要动态放置类,所以如果地形是平原,我需要放置 Plains.create 而不是其他,也许我可以用类数组来做到这一点?

最佳答案

使用对象字面量 - 这使得它变得更加容易和快速,因为您不必在每次查找内容时都循环数组。它也比开关更容易动态处理

const foo = {
Plains: Plains,
Mountains: ImpassableMountains
}

let x = 'Plains';

foo[x].create(newPosition)

关于javascript - Javascript 中的动态切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50667035/

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