我有一个以字符串形式存储的地理数据数组,需要变成一个数组数组。
var input = "[34.1103897,-118.0398531]"
var output = [34.1103897,-118.0398531]
不确定最好的方法。任何提示/建议赞赏!
答案 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;):
var input = "[34.1103897,-118.0398531]"
var output = (input.match(/[+-]?[\d\.]+/g) || []).map(Number);
console.log(output)
&#13;
您可以考虑验证输入或结果输出,无论选择哪种方法将其转换为数组。