2016-03-02 71 views
0

对不起,我是新来的,我不知道该怎么做!创建JavaScript对象(数字,数字)

我从我使用的地址找回地理坐标。他们进来为:

(1234.56, 123.456789) 

我使用它们发送到数据库,我想送他们作为一个JSON对象等的一部分:

{ 
    address: addressInput.value, 
    lat: //variable I store the lat in, 
    lng: //variable I store the lng in 
} 

我想我需要一个函数来分解数字并将它们存储到变量中,但我不知道如何做到这一点。谢谢!

+1

您是否熟悉['split'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/split)? –

+0

这是一个字符串? – phenxd

+0

是'(1234.56,123.456789)'一个正在返回的实际字符串,还是您将它用作返回数组的示例? –

回答

1

试试这个

function createJSON(value){ 
    var lat_lng = value.toString().replace('(', '').replace(')', '').split(','); 
    return {'address': addressInput.value, 'lat': lat_lng[0], 'lng': lat_lng[1]}; 
} 

createJSON((1234.56, 123.456789)); 
+0

我在函数(只是检查它返回的值是什么)它当我提醒lat_lng [0]它显示第二个数字,当我警告lat_lng [1]它说undefined –

+0

你传递给createJSON函数的值是什么? – 2016-03-02 21:20:47

+0

与createJSON((1234.56,123.456789))中的相同 –

0

我认为这应该做你在找什么..

var data="(1234.56, 123.456789)"; 
data=data.replace('(',''); 
data=data.replace(')',''); 
var object = { 
    address: "somevalue", 
    lat: 0, 
    lng: 0 
}; 
var coords = data.split(','); 
object.lat = coords[0]; 
object.lng = coords[1]; 
0
var coordinates = '(1234.56, 123.456789)'.match(/(-?\d+.\d+)/); 
var latitude = coordinates[0]; 
var longitude = coordinates[1]; 


{ 
    address: addressInput.value, 
    lat: latitude, 
    lng: longitude 
} 

一个简单的正则表达式可以为你获取数字。您可以将它们保留为字符串或将其解析为数字,具体取决于您的后端所期望的内容。