我试图在JavaScript中为一个蛇和梯子逻辑(没有ui)编写代码。我需要将它扩展到10,000蛇和梯子。我是JavaScript的新手。我已经成功为5条蛇和5条梯子做了这个,其中2名玩家使用阵列。但我不确定阵列是否能够有效地进行10000个元素的开发和维护。我该怎么用?
var ladderTop = [55, 40];
var ladderBottom = [35, 25];
我使用的阵列与此类似。 Codepen链接:https://codepen.io/nightshade235/pen/oojabm
另外,假设我想从10,000个元素中更改第32个元素,数组是否仍然有效?
答案 0 :(得分:1)
但我不确定数组是否能有效地进行10000个元素的开发和维护。我该怎么用?
但不知怎的,你确定你应该使用别的东西吗?
javascript中巨大的数组没有任何问题
console.time ('add 1 million items')
console.log (
Array.from (Array (1e6), (_,x) => x)
.reduce ((x,y) => x + y, 0))
console.timeEnd ('add 1 million items')
// 499999500000
// add 1 million items: 225ms
将其缩放到10M,没有指数成本
console.time ('add 10 million items')
console.log (
Array.from (Array (1e7), (_,x) => x)
.reduce ((x,y) => x + y, 0))
console.timeEnd ('add 10 million items')
// 49999995000000
// add 10 million items: 2537.070 ms
答案 1 :(得分:0)
我的猜测是你的向导可能会建议组合阵列。例如:
var data = [ { ladder: { Top: 55, Bottom: 35 }, snake: { Top: 22, Bottom: 8 } },
{ ladder: { Top: 40, Bottom: 25 }, snake: { Top: 60, Bottom: 43 } } ]
console.log( data[1].snake.Top )
组合数组绝对不是更有效,因为它需要花费更多的时间来解析并创建更多的对象,但如果项目变大,可能会主观上更容易维护。