javascript - 将 HTML 元素转换为数组并处理 null

标签 javascript arrays

我正在使用 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/

相关文章:

javascript - javascript 迭代对象元素

c - 数组地址操作

JavaScript - 使用键数组从嵌套对象中检索值

javascript - 从 Iframe 获取值到 mainPage

javascript - PHP 变量不在 Javascript 的范围内,如何在范围内获取它?

Javascript webkit-假网址

Javascript Facebook 变量问题

java - 打印出三维数组并得到合并后的整数值

java - 如何对ArrayList中的数组进行排序?

python - numpy,数组不同层的不同切片