gpt4 book ai didi

javascript - console.log(array) 返回空,但 console.log(array.length) 不返回 0

转载 作者:行者123 更新时间:2023-12-03 07:05:58 25 4
gpt4 key购买 nike

我有以下 JavaScript

var filtered = [];

$('#footballCheck').on('change', function() {
if ($('#footballCheck').is(':checked')) {
for (var i = 0; i < fa_names.length; i++) {
if (fa_names[i]["facility_activity"].toLowerCase().indexOf("football") >= 0) {
filtered.push(fa_names[i]);
}
}

filtered.sort(SortByName);
$('#mCSB_1_container').empty(".facility-name");
for (var k = 0; k < filtered.length; k++) {
$('#mCSB_1_container').append('<div class="row facility-name">\
<button class="btn btn-default btn-fill btn-menu" date-name="' + filtered[k]["facility_name"] + '">' + filtered[k]["facility_name"] + '</button></div>');
$('#facilities-body').mCustomScrollbar("update");
}
} else {
for (var j = 0; j < filtered.length; j++) {
if (filtered[j]["facility_activity"].toLowerCase().indexOf("football") >= 0) {
delete filtered[j];
}
}
console.log(filtered);
console.log(filtered.length);
if (filtered.length > 0) {
filtered.sort(SortByName);
$('#mCSB_1_container').empty(".facility-name");
for (var k = 0; k < filtered.length; k++) {
$('#mCSB_1_container').append('<div class="row facility-name">\
<button class="btn btn-default btn-fill btn-menu" date-name="' + filtered[k]["facility_name"] + '">' + filtered[k]["facility_name"] + '</button></div>');
$('#facilities-body').mCustomScrollbar("update");
}
} else {
$('#mCSB_1_container').empty(".facility-name");
for (k = 0; k < fa_names.length; k++) {
$('#mCSB_1_container').append('<div class="row facility-name">\
<button class="btn btn-default btn-fill btn-menu" date-name="' + fa_names[k]["facility_name"] + '">' + fa_names[k]["facility_name"] + '</button></div>');
$('#facilities-body').mCustomScrollbar("update");
}
}
}
});

应该执行以下操作:

  • 如果选中该复选框,则遍历另一个数组,并将键值“facility_activity”包含“football”的所有对象推送到 filtered 数组
  • 如果未选中,则从 filtered 数组中删除键值“facility_activity”包含“football”的所有对象
  • 如果未选中且其长度> 0(意味着仍然存在过滤的对象)则打印这些
  • 如果未选中且filtered 数组为空,则追加父数组中的所有项目(未过滤的数组)

这是fiddle .

背景:复选框充当搜索过滤器,filtered 数组存储这些过滤后的值(除了 filtered 数组中的 fiddle )尚未更改)。

我的问题是 console.log(filtered) 返回 []console.log(filtered.length) 不返回 0 应该如此。为什么会发生这种情况以及如何解决它?

最佳答案

数组上的

删除不会更改数组的长度。它只是将元素值设置为未定义。使用splice从数组中删除元素。

关于javascript - console.log(array) 返回空,但 console.log(array.length) 不返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36825511/

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