gpt4 book ai didi

javascript - 对象数组中的空值

转载 作者:行者123 更新时间:2023-11-28 07:00:05 26 4
gpt4 key购买 nike

当文本框具有某些值时(使用 ng-blur 和 textbox.value!==undefined),我正在创建对象,然后将这些对象放入数组中(这里一切正常)。

当我单击复选框(复选框模型与文本框 ng-required 绑定(bind))时,我需要删除具有该文本框值的特定对象。我正在使用:

arr.splice(index,1);

从数组中删除该特定对象(通过匹配其名称,如“每月”或“季度”等),但它在该特定位置创建null

例如[对象,对象,对象]

[
{name:"monthly",
amount:1000 },

{name:"quarterly",
amount:1200 },

{name:"yearly",
amount:1300 }
]

删除所有元素后,它显示 [] ,当我添加另一个新对象时,它显示 [3:object] ,其内容为 [null,null ,null,对象];

如果我删除中间对象,例如name:"quarterly",,它会显示[object,object],但在添加新对象后,它将数组显示为[ object,object,null,object] 数组长度为 4。

为什么会有 null 以及如何从数组中删除它。 (不想再次迭代来检查 null)。

最佳答案

如果不查看代码,很难说出为什么你的代码会创建空值。

但我可以告诉你,这不是预期的行为。

您可以查看此示例以获得一些灵感:

var data = [
{name:"monthly",
amount:1000 },

{name:"quarterly",
amount:1200 },

{name:"yearly",
amount:1300 }
];

var newObjectToBeAdded = { name: "daily", amount:"100" }

function showObjects()
{
document.body.innerHTML += data + '<hr>';
}

function deleteObjectByName( objectName )
{
for( var i = 0; i < data.length; i++ )
{
if( data[ i ].name == objectName )
{
data.splice(i, 1);
}
}
}

function addObjectToData( newObject )
{
data.push( newObject );
}

showObjects();
deleteObjectByName( "quarterly" );
showObjects();
addObjectToData( newObjectToBeAdded );
showObjects();

只是为了猜测一下,也许您不小心复制了数组。也许在你的代码的某些地方你正在做这样的事情:

var new_array = original_array.splice( index );

或者在用于查找目标对象的循环中创建新数组,或者使用某种中间数组等。

希望对你有帮助!

关于javascript - 对象数组中的空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32248272/

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