首页 > 解决方案 > 如何在javascript中从字符串转换为数组?

问题描述

因此,我正在使用 document.getElementById 读取一些数据,该数据已经是一个数组。但是当我读取它时,它会导致插入一个字符串。

我正在使用 document.getElementById('clients').value,显然这会返回一个字符串,而我想获得一个数组。

var clients = [];
clients = document.getElementById("clients").value;
alert(clients);
console.log(clients);

for(var i =0; i < clients.length; i++){
    var client = clients[i].toString().split(',');
    alert(client);
}

//console.log(clients) gets:
["[['1'", " 'client1']", " ['2'", " 'client2']", " ['3'", " 'client3']]"]

当我从 for 循环中提醒客户端时,我会一一获取客户端中找到的每个字符。虽然我想得到一个对象来拆分它。提前非常感谢。

标签: javascriptjqueryarrays

解决方案


我有这样的东西: [['1', 'client1'], ['2', 'client2'], ['3', 'client3']] 并想得到:1 - client1 .... .

.value应该是有效的JSONor RegExporString方法需要用于将 invalid 转换JSON为 valid JSON。请注意 HTML 属性中的单引号包围值和属性值内的双引号

[["1", "client1"], ["2", "client2"], ["3", "client3"]]

然后,您可以使用JSON.parse()JSON字符串转换为 JavaScript 对象并使用for..of循环来迭代每个嵌套数组的每个元素。

let value = JSON.parse(clients.value);

for (let [a, b] of value) {
  console.log(a, b)
}
<input id="clients" value='[["1", "client1"], ["2", "client2"], ["3", "client3"]]'>


推荐阅读