gpt4 book ai didi

javascript - 为什么我的数组中的某些值未定义

转载 作者:行者123 更新时间:2023-11-29 16:14:14 26 4
gpt4 key购买 nike

我在 php 中有一个 for 循环,它在我的页面上添加了一些看起来像这样的复选框

<input type="checkbox" name="checkbox[]">

我想使用 javascript 来检查哪些被选中并在数组中添加值

var cboxes = document.getElementsByName('checkbox[]');
var len = cboxes.length;
var imageArray = new Array();

for (var i = 0; i < len; i++) {
if (cboxes[i].checked) {
imageArray[i] = cboxes[i].value;
}
}

如果我有 50 个框并单击 2、4 和 6 号复选框,循环遍历我的数组,我会得到结果。

for(var i = 0; i < imageArray.length; i++){
gallery.innerHTML += imageArray[i] + "<br>";
}

--

undefined
Correct value
undefined
Correct value
undefined
Correct value

如果我检查数字 1、2、3,我会得到结果

Correct value
Correct value
Correct value

为什么当我跳过复选框时会得到 undefined?我该如何修复它

最佳答案

这是因为您要向数组添加额外的元素。以这段代码为例:

var a = []; // empty array
a[1] = 'foo'; // don't set a[0]

console.log(a.length); // gives 2

Javascript 将始终“填充”数组键列表中的空白。如果您遗漏了一些内容,Javascript 将使用 undefined 填充空白。

不是通过键名将元素添加到数组中,而是将其push 到数组的末尾:

imageArray.push(cboxes[i].value);

关于javascript - 为什么我的数组中的某些值未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19807953/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com