开发者

attempting to convert String data into numerical data, the drop the data into an array of arrays (Json)

开发者 https://www.devze.com 2023-04-06 17:14 出处:网络
I have this: (65.94647177615738, 87.890625)(47.040182144806664, 90)(45.089035564831036, 122.34375) I\'m attempting to get the output to look like this:

I have this:

    (65.94647177615738, 87.890625)(47.040182144806664, 90)(45.089035564831036, 122.34375)

I'm attempting to get the output to look like this:

   "coords": [[65.94647177615738, 87.890625],[47.040182144806664, 90],[45.089035564831036, 122.34375]]

Any Idea?

The first result comes back to me as a string, so when i try to assign the first object to an array, the console shows me this:

  array is:  "(65.94开发者_Python百科647177615738, 87.890625)(47.040182144806664, 90)(45.089035564831036, 122.34375)"


var str = "(65.94647177615738, 87.890625)(47.040182144806664, 90)(45.089035564831036, 122.34375)";
str = str.slice(1,-1); // remove outermost parentheses
var arrCoord = str.split(')(');  
for (var i=0; i<arrCoord.length; i++) {
    var tarr = arrCoord[i].split(", ");
    for (var j=0; j<tarr.length; j++) {
        tarr[j] = parseFloat(tarr[j]);
    }
    arrCoord[i] = tarr;
}
// arrCoord is now populated with arrays of numbers


Decided to sort of play code golf. Assuming:

var sample = '(65.94647177615738, 87.890625)(47.040182144806664, 90)(45.089035564831036, 122.34375)';

Then:

var coords = sample
    .split(/\(([^)]+)\)/)
    .filter(function(v){return v!=""})
    .map(function(v){return v.split(/[^0-9\.]+/)})
0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号