我正在使用 javascript 读取包含数组的 HTML 元素,但我想它只是数组的字符串版本。所以我将其转换为整数的 javscript 数组,但是当 HTML 数组为空时我遇到了问题。
HTML:(空数组)
<div id="activelist"> [] </div>
HTML:(数组包含值)
<div id="activelist"> [4, 5] </div>
我在脚本中使用 let activeMachines = document.getElementById("activelist").innerHTML;
从页面获取值。
如果我 console.log(activeMachines);
它会在数组为空时返回 []
。
如果我 console.log(activeMachines);
当数组包含值时,它将返回 [3, 5]
。
现在将其处理成我使用的 javascript 整数数组:
//trim off the quotes and brackets
activeMachines = activeMachines.slice(2, -2);
//split into different objects
activeMachines = activeMachines.split(', ');
console.log(activeMachines.length);
现在是我想不通的部分:
当数组为空时 console.log(activeMachines.length);
将返回 1
当数组中有值时 console.log(activeMachines);
将返回 1
当数组中有两个值时 console.log(activeMachines);
将返回 2
有没有办法让 array.length
为空时为 0
?也许 .length
运算符用错了?
感谢您的帮助!
最佳答案
你可以使用 JSON.parse
并返回一个数组。
function getValue(id) {
return JSON.parse(document.getElementById(id).innerHTML);
}
var data = ['activelist0', 'activelist1'].map(getValue);
console.log(data[0].length);
console.log(data[0]);
console.log(data[1].length);
console.log(data[1]);
<div id="activelist0"> [] </div>
<div id="activelist1"> [4, 5] </div>
关于javascript - 将 HTML 元素转换为数组并处理 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54617648/