好奇……你怎么用JS写这个
Ruby?
Array.new(3,Array.new(3,0))
返回
[[0,0],[0,0]]
我尝试过各种各样的东西,但它们看起来都很混乱.我想有些东西不能像Ruby一样干净,但你会怎么做呢?
也许我会学习一两个JS技巧;)
编辑
据透露,这个Ruby代码实际上并没有创建3个数组.它创建了1个数组,其他引用.这不是意图.我正在寻找一种方法来轻松地映射具有X个元素的2维数组,以及JS中的Y个嵌套元素.
还……这是一个人为的例子.内涵是能够用任何数字代替3.这只是一个使用3的例子.
解决方法
您可以像这样定义它:
var arr = [[0,0]];
基本上你是明确定义它.但是,此数组包含对三个不同数组的引用(总共4个).要使其行为像ruby,您需要创建一个模仿此行为的函数:
function arr(size,element) { var ret = []; for(var i = 0; i < size; i++) { ret.push(element); } return ret; }
然后你可以这样做:
var myArray = arr(3,arr(3,0)); //myArray contains [[0,0]]
这更像是你在ruby中看到的行为,因为数组中的每个元素都是对同一个数组的引用(总共只有两个数组).您可以通过执行myArray [0] [1] = 2来验证这一点;然后检查myArray.您应该看到myArray中每个数组中的第二个元素设置为2.