将AJAX HTML响应读取到JavaScript数组中

Reading an AJAX HTML response into a JavaScript array

本文关键字:JavaScript 数组 读取 AJAX HTML 响应      更新时间:2023-09-26

好吧,我有一个AJAX函数,它从远程PHP文件中获取JSON编码的字符串,响应看起来像…

{"zone_id":"1","zone_name":"Test Zone 1","zone_tilemap":"0,0,0,0*0,0,0,0*0,0,0,0*0,0,0,0","zone_objectmap":"0,0,0,0*0,0,0,0*0,0,0,0*0,0,0,0"}

我不会太深入地讨论这个代码是关于什么的,但我现在需要的部分是tilemap,我需要以某种方式将这些数字读取到多维JavaScript数组中,这样它看起来就像…

var someArray = new Array([0,0,0,0],[0,0,0,0],[0,0,0,0],[0,0,0,0]);

我知道在PHP中有一个爆炸函数,它可以通过星号和逗号将字符串分开,并将结果放入数组中,但我不擅长JavaScript,也不知道如何实现这一点,有什么想法吗?

到目前为止我的AJAX函数。。。

function getLocalZoneInformation(){
    $.ajax({
        type: 'POST',
        url: "./inc/backend/game.functions.php?getLocalZoneInformation=" + localCharacterZoneID,
        success: function(response){
            var localZoneInformation = jQuery.parseJSON(response);
            localZoneID = localZoneInformation.zone_id;
            localZoneName = localZoneInformation.zone_name;
            localZoneTileMap = localZoneInformation.zone_tilemap;
            localZoneObjectMap = localZoneInformation.zone_objectmap;
        }
    });
}
var tmp = localZoneTileMap.split("*");
var someArray = [];
for (i = 0; i < tmp.length; i++) {
    someArray.push(tmp[i].split(","));
}

如果使用JavaScript 1.6或更新版本,则可以使用map()方法

var someArray = localZoneTileMap.split("*").map(function(tileMap) {
    return tileMap.split(",");
});

试试这个:

zones = localZoneName.zone_tilemap.split("*")
out_array = []
for (i in zones) {
    out_array.push(zones[i].split(","))
}

结果将保存在out_array变量中。

  • 创建类型转换(数组)
  • 循环对象
  • 将每个elem推到阵列