Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.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 删除数组中的特定元素(对象)_Javascript_Arrays_Object - Fatal编程技术网

Javascript 删除数组中的特定元素(对象)

Javascript 删除数组中的特定元素(对象),javascript,arrays,object,Javascript,Arrays,Object,我试图删除数组中的多个条目 这些条目是对象,我需要找到满足特定条件的对象 var pending = []; a.forEach(function(entry, index) { if(entry.b == data) { pending.push(index); } }); pending.forEach(function(entry) { a.splice(entry, 1); }

我试图删除数组中的多个条目

这些条目是对象,我需要找到满足特定条件的对象

    var pending = [];
    a.forEach(function(entry, index) {
        if(entry.b == data) {
            pending.push(index);
        }
    });
    pending.forEach(function(entry) {
        a.splice(entry, 1);
    });
问题是它只删除了我想要的内容的一半(当
b=data
时),甚至删除了一些随机条目


谢谢您的帮助。

我假设
a
是一个对象数组,您希望对其进行筛选,以便只保留
b
属性等于字符串
'data'
的对象。在这种情况下:

//这将输出到控制台,您可能应该按“F12”
变量a=[{
“b”:“数据”
}, {
‘b’:‘其他的东西’
}, {
“b”:“数据”
}, {
b:50
}],
挂起=a.filter(函数(elem){
返回元素b==='数据';
});

控制台日志(待定)什么是
a
,什么是
数据
?你想保留什么,给我们看一些相关的(尽管是简化的)代码,并填入变量?你可能会从非严格的等式比较中得到误报。您在调试器中已完成此操作了吗?对于每个
splice()
a
中的索引都会对所有
>条目进行移位,因此下一个
条目将关闭1,下一个关闭2,依此类推。查看.AHH~!没错@JonathanLonowski!我忽略了这个事实!所以,filter()??@cloud1250000是的。David已经发布了一个
.filter()
的示例。它不像
.splice()
那样是一个突变子,因此它不会改变
a
。相反,它创建了一个新的
数组
,而不包含可分配回
a
作为
a=a.filter(…)的过滤元素。所以基本上,我应该重做一个数组,在那里保存我想要的消息?太好了!它工作得很好!我做的是pending=a.filter(函数(elem){returnelem.b!=data;});a=待定;