Javascript快速变量赋值

时间:2011-05-27 08:51:32

标签: javascript arrays variables variable-assignment

这是其中一个我不知道如何正确说出来的问题,所以如果之前有人问过我会道歉。

Python提供了一些非常简单的语句,用于快速将数组分配给值。例如,如果我有一个像box=[0,0,100,100]这样的数组的框,我可以像x1,y1,x2,y2=box那样分配这些点。在javascript中有这样的声明吗?这在类函数中尤其有用,其中var x1,y1,x2,y2=this.box

简洁得多
var x1=this.box[0];
var y1=this.box[1];
var x2=this.box[2];
var y2=this.box[3];

如果是这样,那么是否有任何javascript方法将其应用于for循环?来自python,下面看起来很直观

盒= [[0,0,100,100],[0,0,100,100],[0,0,100,100],[0,0,100,100]]

for box in boxes:
 x1,x2,x3,x4 = box
 #do something

绝对比

更直观
var boxes=[[0,0,100,100],[0,0,100,100],[0,0,100,100],[0,0,100,100]];

    for (var i = 0; i < boxes.length : i++){
      var box = boxes[i];
      var x1 = box[0];
      var y1 = box[1];
      var x2 = box[2];
      var y2 = box[3];

2 个答案:

答案 0 :(得分:3)

跨浏览器是不可能的,抱歉。 Firefox实现了一种新语法,但目前还没有其他浏览器:

var [x, y] = [1, 2];

答案 1 :(得分:1)

我相信这是不行的..或者,你可以生成你的列表

var boxes = [
   {'x1':0, 'y1':0, 'x2':100, 'y2':100},
   {'x1':0, 'y1':0, 'x2':100, 'y2':100},
   {'x1':0, 'y1':0, 'x2':100, 'y2':100},
]

然后您可以使用

访问它们
for (i in boxes) {
   var box = boxes[i]
   // use box.x1 box.y1 box.x2 box.y2
   //such as:
   console.log(box.x1);
}