如何在Javascript数组中移除方括号?

7

我有一个名为value的数组,当我使用console.log(value)时,会得到大约30行代码,其中包含以下内容:[6.443663, 3.419248]

这些数字会随着纬度和经度而改变。但是我需要以某种方式消除每个数字周围的方括号。

我尝试过var replaced = value.toString().replace(/\[.*\]/g,'');但这将上面的示例更改为6.443407,3.419035000000008并使我的代码失败。

换句话说,我需要帮助消除数组中的方括号,以便在地图上绘制点。

我的数组由以下代码组成,因为每个纬度和经度值都存储在a链接中的onClick函数中。因此,本站的一位成员友好地提供了下面的代码,以将我的值获取到数组中,但现在我无法将其中的值取出,因为括号破坏了它。

var obj = {};
$('.choice-location-inner a').each(function(){
    var $this = $(this);
    var text = $this.attr('onClick').replace('findLocation(\'', '').replace('\');return false;', '');
    var array = text.split(',')
    obj[this.id]= [parseFloat(array[0]), parseFloat(array[1])];
});

数组正试图使用以下代码在我的Google地图上绘制标记:
$.each(obj , function(index, value){
    geocoder = new google.maps.Geocoder();

    geocoder.geocode( { 'address': value}, function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            map.setCenter(results[0].geometry.location);
            marker = new google.maps.Marker({
                map: map,
                icon: image,
                position: results[0].geometry.location
            });
        } else if (status == google.maps.GeocoderStatus.OVER_QUERY_LIMIT) {
            wait = true;
            setTimeout("wait = false", 1000);
        } else {
            alert("Geocode was not successful for the following reason: " + status);
        }
    });
});

“value” 到底是什么?一个数组,一个字符串?请输出 console.log(typeof value) - gen_Eric
你的意思是在数组里存储经度/纬度值的时候,以字符串的形式存储,比如array[0] = "[23.021321,18.213123]"? - Gga
1
如果 value 是数组,则 value.toString() 等同于 value.join(',') - gen_Eric
@RocketHazmat console.log(typeof value) 返回值为 Object - ngplayground
@RocketHazmat 我已经更新了代码,向您展示我如何尝试使数组工作。我正在尝试将每个数组项绘制到我的Google地图上。 - ngplayground
显示剩余8条评论
5个回答

12

将线性数组转换为文本。

var value = [[1234213, 1234231], [1234213, 1234231]];
var dato = value[0];
console.log(dato.toString());

11

除非我理解错误,该项是一个包含括号的字符串而不是对象,那么您可以通过其子数组位置来访问它。

lat = obj[this.id][0]
lng = obj[this.id][1]

也许呢?


如果数组只有一个元素,是否有一种方法可以在不使用索引的情况下完成此操作? - zero_cool

6

看起来你想要一个由逗号分隔的字符串表示数组。如果是这样的话,你可以这样做:

var commasep = value.join(",");

0
`${arr.map(({ id }) => id)}`

也许这种方式比使用内置函数要简单得多!


0
如果您需要一个干净的输入,您可以编写以下代码。
var justTheDataWithoutSeparation = data.split('');

当然,如果你想用逗号或其他符号分隔,你需要添加

vat dataSeparatedWithSomething = data.split('-');

你需要小心,因为使用这种方法可能会导致你的数据设置为字符串值,并且可能会影响你的输出结果,所以在进行操作之前需要进行转换。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接