Javascript 4D 数组 [英] Javascript 4D arrays

查看:31
本文介绍了Javascript 4D 数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

有人有创建 4D 数组(或任何数量的维度)的函数吗?

Anyone have a function to create 4D arrays (or any number of dimensions for that matter)?

我想调用这个函数,然后我可以做类似arr[3][2][23][12] = "awesome";

I'd like to call the function, then after that I can do something like arr[3][2][23][12] = "awesome";

推荐答案

function make(dim, lvl, arr) {
  if (lvl === 1) return [];
  if (!lvl) lvl = dim;
  if (!arr) arr = [];
  for (var i = 0, l = dim; i < l; i += 1) {
    arr[i] = make(dim, lvl - 1, arr[i]);
  }
  return arr;
}

var myMultiArray = make(4);

更新:您可以在第一个参数中指定级别的深度,以及第二个参数中的级别数.例如:

Update: you can specify how deep a level should be in the first parameter, and how many levels in the second. e.g.:

var myMultiArray = make(64, 4);

这将允许您设置和获取此格式:

This will allow you to set and get in this format:

myMultiArray[X][X][X][X] = ....

但 X 必须始终小于 64.例如,您不能设置 myMultiArray[X][70][X][X],因为 myMultiArray[X][70] 尚未定义

But X must always be less than 64. You cannot set myMultiArray[X][70][X][X] for example, because myMultiArray[X][70] has not yet been defined

注意 - 运行 make(64, 4) 非常慢 - 您正在创建 64 ^ 4 个空数组元素(即 16,777,216).

Note- running make(64, 4) is awfully slow - you are creating 64 ^ 4 empty array elements (i.e. 16,777,216).

更新 2:您可以使用任意数字或字符串形式的最后一个值.IE.myMultiArray[X][X][X][Y] 其中 X <64 和 Y 可以是任何东西.

Update 2: you can get away with the last value as any number or string. Ie. myMultiArray[X][X][X][Y] where X < 64 and Y can be anything.

算法也优化了,再试一次.

The algorithm has been optimised as well, give it another go.

这篇关于Javascript 4D 数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆