传递给函数时,JavaScript数组已变成字符串

时间:2018-11-09 00:36:08

标签: javascript html google-apps-script

我在Google Apps脚本中有一些代码。我已经创建了一个连接到电子表格的Web应用程序。在html中,我有此按钮

<input id="save" type="button" value="Save" class="btn btn-primary btn-lg" onclick="updateButton(data);"

用户可以单击。当他们单击它时,它将打开updateButton函数。数据是前面在js代码中定义的二维数组,我知道它可以被元素调用并且具有类型对象。但是,当我尝试在更新按钮中使用它时,其类型为字符串,并且以逗号分隔的字符串形式出现。由于数组是二维的,我不能只使用split,因为它使它成为一个长数组而不是二维数组。

例如,如果原始数据为

[["1", "2", "3", "4", "5"], ["9", "8", "7", "6"]]

结尾
"1, 2, 3, 4, 5, 9, 8, 7, 6"

2 个答案:

答案 0 :(得分:0)

如果要将二维数组转换为一维数组,可以使用数组方法 flat ,但这并不支持所有浏览器。

您需要用于循环的另一种方式

let currentArray = [["1", "2", "3", "4", "5"], ["9", "8", "7", "6"]]
let newArray = []
currentArray.forEach(rowItem=>{
    rowItem.forEach(columnItem=>{
        newArray.push(columnItem)
    })
})

我希望答案就是你想要的。

答案 1 :(得分:0)

结果我发现了问题。我的数据数组来自google apps脚本,我正在尝试将其写入javascript。我将此行作为模板化html的一部分。

self managed K8S

由于模板评估了数据,因此似乎正在将字符串形式的数据(在模板内部)传递给javascript内部的数据。因此,我将不得不寻找另一种将数据变量传递给javascript的方法。