将字符串转换为整数数组

时间:2017-04-05 01:23:11

标签: javascript

我有一个以字符串形式存储的地理数据数组,需要变成一个数组数组。

var input = "[34.1103897,-118.0398531]"
var output = [34.1103897,-118.0398531]

不确定最好的方法。任何提示/建议赞赏!

3 个答案:

答案 0 :(得分:4)

转换该格式数组的最简单方法是使用var input = "[34.1103897,-118.0398531]"; var output = JSON.parse(input);

简单地说:

<style>
    form.validate .ng-invalid-required.ng-dirty {background-color: lightpink;}
    form.validate .ng-invalid-email.ng-dirty {
        background-color: lightgoldenrodyellow;
    }
    div.error { color: red; font-weight: bold;}
</style>

答案 1 :(得分:1)

假设数据始终没有空白格式,您只需删除第一个和最后一个字符,然后拆分为',':

var input = '[34.1303897,-118.0398591]';
var output = input.slice(1, -1).split(',').map(parseFloat);

或者,该语法在技术上是有效的JSON语法,因此您可以:

var input = '[34.1303897,-118.0398591]';
var output = JSON.parse(input);

但是,这可能很危险,具体取决于数据的来源。

答案 2 :(得分:0)

JSON.parse是显而易见的选择,但也有使用正则表达式的手动解析(以下假设您可能还想匹配前导&#39; +&#39;):

&#13;
&#13;
var input = "[34.1103897,-118.0398531]"
var output = (input.match(/[+-]?[\d\.]+/g) || []).map(Number);

console.log(output)
&#13;
&#13;
&#13;

您可以考虑验证输入或结果输出,无论选择哪种方法将其转换为数组。