加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby => Javascript翻译

发布时间:2020-12-16 23:29:31 所属栏目:百科 来源:网络整理
导读:好奇……你怎么用JS写这个 Ruby? Array.new(3,Array.new(3,0)) 返回 [[0,0],[0,0]] 我尝试过各种各样的东西,但它们看起来都很混乱.我想有些东西不能像Ruby一样干净,但你会怎么做呢? 也许我会学习一两个JS技巧;) 编辑 据透露,这个Ruby代码实际上并没有创建3
好奇……你怎么用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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读