微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ruby => Javascript翻译

好奇……你怎么用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.

原文地址:https://www.jb51.cc/ruby/264534.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐