2013-03-22 3 views
-2

Я пытаюсь поместить переменные cord1x и cord1y в массив сегментов, но это не работает.Переменные в массиве - Javascript

вот мой код:

var cord1x = 121; 
var cord1y = 446; 
segments = [{x: cord1x, y: cord1y}]; 

как я стал переменной в строку сегментов?

+0

Что означает «не работает» _ означает? –

+0

'segment' - это массив, содержащий один объект. Определить «не работает». –

+0

Я вообще не понимаю последний абзац. «Как мне стать», кажется, подразумевает, что вы меняете на что-то другое, что явно не подразумевается здесь. –

ответ

1

Основываясь на ваш комментарий, возможно, Array#push является то, что вы хотите:

segments = []; 

//foreach point in some set 
    // compute cord1x, cord1y 
    segments.push({x: cord1x, y: cord1y}); 

Тогда segment становится массив объектов, каждый из которых представляет одну 2d, в соответствии с вашим примером segments = [{x: 121, y: 446}, {x: 164, y: 384}, {x: 190, y: 271}, {x: 186, y:198}, {x: 180, y:60}]


Основываясь только на вопрос:

С segments = [{x: cord1x, y: cord1y}];, segments становится массивом, содержащим один анонимный объект. cord1x становится доступным как segments[0].x и cord2x становится доступным как segments[0].y.

С segments = {x: cord1x, y: cord1y}, segments становится объектом со свойствами x и y. cord1 становится доступным как segments.x и cord2 становится доступным как segments.y.

С segments = [cord1x, cord1y], segments становится массивом из двух целых чисел. cord1x становится доступным как segments[0] и cord1y становится доступным как segments[1].

С segments = '{x: '+cord1x+', y: '+cord1y+'}', segments становится строкой в ​​виде {x:121, y:446}. Недостатком является то, что cord1x и cord1y не так легко отыскать. Положительный момент состоит в том, что segments теперь можно сравнить для равенства, а не для идентификации, используя ===.

+0

эй ян. Большое спасибо! что мне очень помогло. ваш второй комментарий был тем, что я ищу. :) – paul

0

Для этого вы должны использовать метод push в javascript.

var coordinate1 = Coordinates.getCoordinate(100, 200); 
var coordinate2 = Coordinates.getCoordinate(200, 300); 
var coordinate3 = Coordinates.getCoordinate(300, 400); 
var coordinates = [coordinate1, coordinate2]; 
coordinates.push(coordinate3) 

Вы можете узнать больше на сайте W3 Schools http://www.w3schools.com/jsref/jsref_push.asp

+0

Я не рекомендую ссылаться на w3schools. Вместо этого используйте MDN. На этом сайте есть множество ужасных советов. Кроме того, почему вы используете фрукты в своем примере (за исключением того, что этот пример скопирован с этого сайта)? –

0

Это может сработать.

var Coordinates = function() {}; 

Coordinates.onLoad = function() { 
    var coordinate1 = Coordinates.getCoordinate(100, 200); 
    var coordinate2 = Coordinates.getCoordinate(200, 300); 
    // access them like coordinate1.x, coordinate1.y 
}; 

Coordinates.getCoordinate = function(x, y) { 
    var coordinate = { 
     x: x, 
    y: y 
    }; 
    return coordinate; 
}; 
+0

Вы понимаете, что 'Coordinates.onLoad' никогда не вызывается, кроме как вручную? –

Смежные вопросы