Lua表格转换为JS数组

我有一个类似如下的Lua表格

Save = {
["player 1"] = {
    ["show"] = true,
    ["name"] = "user1",
    ["data"] = 56171308,
},
["player 2"] = {
    ["show"] = false,
    ["name"] = "user1",
    ["data"] = 508703367,
},}

我想要通过一个HTML页面将其转换为JS数组,使其如下所示

[   ["player 1","user1",56171308],
["player 2","user2",508703367] ]

我尝试在页面中加载Lua内容并使用以下函数删除一些元素

<script>
  function myFunction() {
    var str = document.getElementById("file-content").innerHTML;
    var res = str.replace(/Save|show|true|false|name|data|,|{|}|=|"|[[\]]/g, '');
    var temp = new String(res);
    temp = temp.replace(/^\s*[\r\n]/gm, '');
    document.getElementById("file-content").innerHTML = temp;
  }
</script>
点赞
用户11733466
用户11733466

以下是关于你问题的更新答案:

function myFunction() {
    var str = document.getElementById("file-content").innerHTML;
    var res = str.replace(/Save|show|true|false|name|data|,|{|}|=|"|[[\]]/g, '  '); // 使用额外的空格替换
    var temp = new String(res);
    temp = temp.replace(/^\s*[\r\n]/gm, ''); // 移除空格
    temp = temp.replace(/(\r\n|\n|\r)/gm, ""); // 移除换行符
    temp = temp.replace(/\t/g, ''); // 移除制表符

    var array = temp.split("  ");
    array = array.filter(function(e) { // 过滤空元素
        return e
    });
    var finalArray = chunkArray(array, 3) // 数组分块为每3个元素
    console.log(finalArray);
    var longstring = convertToSring(finalArray);
    document.getElementById("file-content").innerHTML = longstring.toString();
}

function chunkArray(myArray, chunk_size) {
    var index = 0;
    var arrayLength = myArray.length;
    var tempArray = [];

    for (index = 0; index < arrayLength; index += chunk_size) {
        myChunk = myArray.slice(index, index + chunk_size);
        // 如果需要对每个分块进行操作,可以在这儿实现
        tempArray.push(myChunk);
    }

    return tempArray;
}

function convertToSring(finalArray) {
    var longstring = "[";
    for (var i = 0; i < finalArray.length; i++) {
        var string = '["' + finalArray[i].join('","') + '"],';
        console.log(string);
        longstring = longstring + string;
    }
    longstring = longstring.replace(/,\s*$/, ""); // 移除最后一个逗号
    longstring = longstring + "]";
    return longstring;
}

myFunction();

查看 jsfiddle 上的工作代码:https://jsfiddle.net/gcfs0kda/2/

2019-07-14 13:32:10