gpt4 book ai didi

javascript - 使用 .each() 填充数组但第一个值显示为空

转载 作者:行者123 更新时间:2023-11-28 14:14:37 25 4
gpt4 key购买 nike

因此,我可以选择将所有值和文本循环到数组中。

我不明白的是为什么这个数组的第一个值是空的?

var op = new Array();

$('select option').each(function() {
if ($(this).val() !== '' && $(this).val() !== null) {
op[$(this).val()] = $(this).text();
}
});

console.log(op);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select>
<option value="">select 1</option>
<option value="1">select 2</option>
<option value="2">select 3</option>
<option value="3">select 4</option>
<option value="4">select 5</option>
</select>

(5) [empty, "Option 1", "option 2", "Option 3", "Option 4"]

1: "Option 1"

2: "Option 2"

3: "Option 3"

4: "Option 4"

这就是我从控制台得到的。

虽然我确实认为代码是正确的,但我只是不明白为什么第一个值是空的。

最佳答案

您正在使用选项值作为数组索引。由于 value="0" 没有选项,因此数组的该元素中没有任何值。

您可以直接将值插入数组,而不是使用值作为索引。

    $('select option').each(function(){
if ($(this).val() !== '' && $(this).val() !== null) {
op.push($(this).text());
}
});

那么开头就不会出现空元素,但索引不会与值对应。

或者您可以将 op 设为对象而不是数组。那么它将只具有您添加的属性。

关于javascript - 使用 .each() 填充数组但第一个值显示为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58035064/

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