Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript delete在对象中保持“空”_Javascript - Fatal编程技术网

JavaScript delete在对象中保持“空”

JavaScript delete在对象中保持“空”,javascript,Javascript,尝试使用delete从对象中删除元素,但当值消失时,对象中仍有空元素。如图所示: 在以下迭代中导致不必要的行为: for (const [key, value] of ids.entries()) { if (Object.values(this.widget_ids).indexOf(value) >= 0) { delete ids[key] } } 现在,我不能用pop或shift,因为。我需要按键删除的选项,知道如何删除和删除此空插槽吗?或者更好的

尝试使用delete从对象中删除元素,但当值消失时,对象中仍有空元素。如图所示:

在以下迭代中导致不必要的行为:

for (const [key, value] of ids.entries()) {
    if (Object.values(this.widget_ids).indexOf(value) >= 0) {
        delete ids[key]
    }
}
现在,我不能用pop或shift,因为。我需要按键删除的选项,知道如何删除和删除此空插槽吗?或者更好的方法是,在根本不需要处理的情况下删除它?

您可以使用它,它允许在给定索引处删除一定数量的元素

删除元素并在此索引处保留稀疏数组,但不会更改数组的长度

变量ID=[322324435]; ids.0,1; //^索引 //^要删除的元素计数 console.logids delete的问题是它删除了object属性,但不会重新索引数组或更新其长度。这使得它看起来像是未定义的或空的

从开始,deleteCount从数组中删除元素:

变量ID=[322324435]; ids.indexOf322,ids.indexOf322+1;
console.logids 使用“拼接”而不是“删除”,它只是设置为“未定义”

var-id=[1,2,3]; console.logids; id.1,1;
console.logids;我认为您需要这样做:共享您的完整代码?您使用的是数组,这就是您删除的索引保留空值的原因。改为使用一个对象,看看我的示例:只是一个附加组件,因为OP似乎想按id删除:在拼接函数中使用indexOfkey。。。。