Создать массив из точек - PullRequest
       7

Создать массив из точек

0 голосов
/ 12 сентября 2011

Мне нужно отформатировать массив из списка значений.

В настоящее время у меня есть следующие жестко закодированные точки:

points = [
{x: 20, y: 112},
{x: 23, y: 101},
{x: 51, y: 89},
{x: 63, y: 89},
{x: 84, y: 129},
{x: 64, y: 153},
{x: 45, y: 151},
{x: 38, y: 140},
{x: 28, y: 150},
{x: 10, y: 144},
{x: 0, y: 130},
{x: 10, y: 114}
];

Полученный массив должен быть передан в функцию.

Теперь мне нужно передать другой массив той же функции, но я не могу жестко закодировать их, как указано выше. Вместо этого я использую среду JS для динамического захвата точек, например, $ (# container) .get ('points');

Как преобразовать новый массив, чтобы он был отформатирован аналогично x: | у: структура, как указано выше?

points="20,112, 23,101, 51,89, 63,89, 84,129, 64,153, 45,151, 38,140, 28,150, 10,144, 0,130, 10,114"

Я нашел следующее в MooTools:

Array.each([1, 2, 3], function(number, index)
{
    alert('x:' + number + ', y: ' + index);
});

... но почему-то это не похоже на правильный способ сделать это.

Могу ли я получить небольшое руководство, пожалуйста?

Ответы [ 2 ]

4 голосов
/ 12 сентября 2011

Вы можете split [документы] строку и выполнить итерацию по ней, принимая два значения в каждой итерации:

var parts = points.split(',');
var pointsArray = [];

for(var i = 0, l = parts.length; i < l; i += 2) {
    pointsArray.push({x: +parts[i], y: +parts[i+1]});
}
0 голосов
/ 12 сентября 2011

Вы должны на самом деле разделить его дважды:

var points = "12,12, 1,2, 3,4"
var arr = points.split(', ');
for(var i = 0; i< arr.length; i++)
{
  var point = arr[i].split(',');
  document.write(point+ ' <br />' );
  arr[i] = {x:point[0], y:point[1]};
  document.write('   '+arr[i].x + ' ' + arr[i].y + ' <br/>');
}

Кроме этого, как и в другом комментарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...