2014-11-28 3 views
-1

Мне нужно взять строку координат и создать из нее любой массив.Строка в массив с проблемами

var points = []; 

points[0] = [-122.349517923,47.975040441]; 
points[1] = [-122.349518007,47.975040609]; 
points[2] = [-122.349758148,47.975320816]; 
points[3] = [-122.349972725,47.975363731]; 
points[4] = [-122.350101471,47.975342274]; 
points[5] = [-122.351560593,47.974805832]; 

Вот что я в настоящее время

var path = "-122.349517923,47.975040441 -122.349518007,47.975040609 -122.349758148,47.975320816 -122.349972725,47.975363731 -122.350101471,47.975342274 -122.351560593,47.974805832"; 
var points =[]; 
var patharray = path.split(' '); 
for(i = 0; i < patharray.length; ++i) { 
     points = [[patharray[i]]];    
     }  
    console.log(patharray); 
    console.log(points[0]); 
    console.log(points[1]); 
    console.log(points[2]); 
    console.log(points[3]); 

http://jsfiddle.net/w45nfn01/217/

+1

Ваша функция ничего не возвращает. – Cristy

+0

И эта строка: 'points = [[patharray [i]]];' каждый раз переписывает массив точек. Чтобы добавить новую точку, используйте 'points.push (patharray [i]);' – Cristy

+0

Спасибо. Измените ее вокруг, так как она не должна быть функцией. Позвольте мне попробовать толчок. – James734

ответ

0

Ваш первый «раскол» в порядке, но затем нужно снова разделить на «», и преобразовать строку цифр:

var path = "-122.349517923,47.975040441 -122.349518007,47.975040609 -122.349758148,47.975320816 -122.349972725,47.975363731 -122.350101471,47.975342274 -122.351560593,47.974805832"; 
var points = []; 
var patharray = path.split(' '); 
for(i = 0; i < patharray.length; ++i) { 
    var strCoords = patharray[i].split(','); 
    points.push(strCoords.map(function(s) { return +s; })); 
} 
+0

Спасибо, Джоэл. Работал как шарм. Однако метод Кристи тоже работал. – James734

+0

Да, но есть разница: в одном методе вы получаете баллы как строки, а в другом вы получаете их как числа. В зависимости от вашего контекста, выберите правильный! ;) – Joel

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