用于存储大量元素的 Javascript 数据类型



我正在尝试在JavaScript中为蛇和梯子逻辑(没有ui)编写代码。我需要把它扩展到10,000条蛇和梯子。我是 JavaScript 的新手。我已经设法为5条蛇和5个梯子与2名玩家使用数组做到这一点。但我不确定数组对于 10000 个元素的开发和维护是否有效。我应该改用什么?

var ladderTop = [55, 40];
var ladderBottom = [35, 25];

我使用的数组与此类似。代码笔链接:https://codepen.io/nightshade235/pen/oojabm

另外,假设我想更改 10,000 个元素中的第 32 个元素,数组仍然有效吗?

但我不确定数组对于 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

我的猜测是您的指南可能建议组合数组。例如:

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 )

组合数组绝对不是更有效率,因为它需要更多的时间来解析并会创建更多的对象,但如果项目变得更大,主观上可能更容易维护。