Javascript быстрое назначение переменных - PullRequest
3 голосов
/ 27 мая 2011

Это один из тех вопросов, которые я не знаю, как правильно произнести слово, поэтому я прошу прощения, если он был задан ранее.

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 ]

3 голосов
/ 27 мая 2011

Кросс-браузер не возможен, извините.Firefox реализует новый синтаксис, но ни один другой браузер в настоящее время не делает:

1 голос
/ 27 мая 2011

Я считаю, что это не пойдет .. В качестве альтернативы, вы можете создать свой список как

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);
}
...