Javascript 对象数组中的空值

Javascript 对象数组中的空值,javascript,arrays,angularjs,splice,array-splice,Javascript,Arrays,Angularjs,Splice,Array Splice,当textbox有一些值时(使用ng blur和textbox.value!==undefined),我正在创建对象,然后将这些对象放入一个数组中(在这里都可以正常工作) 当我点击复选框(需要复选框modelbindwithtextboxng)时,我需要删除具有该textbox值的特定对象。 我正在使用: arr.splice(index,1); 从数组中删除该特定对象(通过匹配其名称,如“每月”或“每季度”等),但它正在该特定位置创建null 例如[对象,对象,对象] [ {name:"mo

当textbox有一些值时(使用ng blur和
textbox.value!==undefined
),我正在创建对象,然后将这些对象放入一个数组中(在这里都可以正常工作)

当我点击复选框(需要复选框modelbindwithtextboxng)时,我需要删除具有该textbox值的特定对象。 我正在使用:

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

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

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

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

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

如果我删除中间对象,比如说
名称:“季刊”
它会显示
[对象,对象]
,但在添加新对象后,它会将数组显示为
[对象,对象,空值,对象]
,数组长度为4


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

很难说您的代码创建空值的原因而不去查看它

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

您可以通过以下示例获得一些灵感:

var数据=[
{姓名:“每月”,
金额:1000},
{名称:“季刊”,
金额:1200},
{名称:“每年”,
金额:1300}
];
var newobjecttobeaded={name:“daily”,amount:“100”}
函数showObjects()
{
document.body.innerHTML+=data+'
'; } 函数deleteObjectByName(objectName) { 对于(变量i=0;ishowObjects()很难说为什么您的代码创建空值而不查看它

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

您可以通过以下示例获得一些灵感:

var数据=[
{姓名:“每月”,
金额:1000},
{名称:“季刊”,
金额:1200},
{名称:“每年”,
金额:1300}
];
var newobjecttobeaded={name:“daily”,amount:“100”}
函数showObjects()
{
document.body.innerHTML+=data+'
'; } 函数deleteObjectByName(objectName) { 对于(变量i=0;ishowObjects()向我们显示代码(最好是plunkr)。Splice没有这种效果。如何将新对象添加到数组中?最好是添加一个包含所有相关代码的代码段。您使用的是loadash还是下划线?如何添加元素?向我们展示代码(最好是plunkr)。Splice没有这种效果。如何将新对象添加到数组中?最好是添加一个包含所有相关代码的代码段。您使用的是loadash还是下划线?您是如何添加元素的?如果合适,则回调只需是:
function(val){return!!val}
。如果合适,则回调只需是:
function(val){return!!val}
var arrayWithoutNulls = myArray.filter(function(val) {
    if (val) {
        return val;
    }
});