Javascript 基于对象的属性删除数组的对象
我有一个这样的数组:Javascript 基于对象的属性删除数组的对象,javascript,arrays,Javascript,Arrays,我有一个这样的数组:var obj=[{x:4,y:5},{x:6,y:2},…],我正试图基于x删除一个内部对象(属性) 这就是我试图做到的: obj.forEach(function (child){ if(child.x === 4){ obj.destroy(child) } }); 但它不起作用,我得到 破坏不是一种功能 我还尝试了obj.splice(child),但它只是把数组弄乱了。那么我做错了什么? 还有一种更好的方法可以做到这一点,那就是不必
var obj=[{x:4,y:5},{x:6,y:2},…]
,我正试图基于x删除一个内部对象(属性)
这就是我试图做到的:
obj.forEach(function (child){
if(child.x === 4){
obj.destroy(child)
}
});
但它不起作用,我得到
破坏不是一种功能
我还尝试了obj.splice(child)
,但它只是把数组弄乱了。那么我做错了什么?
还有一种更好的方法可以做到这一点,那就是不必每次都循环遍历所有数组属性?您可能拥有一个数组作为
obj
,因为您在问题中发布的数组是无效语法
此外,您可以使用Array#findIndex
首先获取匹配元素的索引,然后从数组中获取该索引
varobj=[{x:4,y:5},{x:6,y:2}];
var索引=对象findIndex(项目=>项目x==4);
目标拼接(索引1);
控制台日志(obj)
您可能拥有一个数组作为obj
,因为您在问题中发布的数组只是无效语法
此外,您可以使用Array#findIndex
首先获取匹配元素的索引,然后从数组中获取该索引
varobj=[{x:4,y:5},{x:6,y:2}];
var索引=对象findIndex(项目=>项目x==4);
目标拼接(索引1);
控制台日志(obj)
forEach()
在数组上工作
如果obj
是一个数组,只需使用filter()
即可从数组中删除不需要的对象:
var obj=[{x:4,y:5},{x:6,y:2}]
obj=obj.filter(c=>c.x!==4)
控制台日志(obj)
forEach()
在数组上工作
如果obj
是一个数组,只需使用filter()
即可从数组中删除不需要的对象:
var obj=[{x:4,y:5},{x:6,y:2}]
obj=obj.filter(c=>c.x!==4)
控制台日志(obj)代码>您可以在阵列上使用过滤器:例如
let arrayToFilter=[{x:4,y:5},{x:6,y:2}];
常量值过滤器=4;
var filteredArray=arrayToFilter.filter((o)=>{
返回o.x!==过滤器的值;
});
控制台日志(filteredArray)代码>您可以在阵列上使用过滤器:例如
let arrayToFilter=[{x:4,y:5},{x:6,y:2}];
常量值过滤器=4;
var filteredArray=arrayToFilter.filter((o)=>{
返回o.x!==过滤器的值;
});
控制台日志(filteredArray)
我假设您试图筛选出数组中具有与给定值匹配的x
的对象。如果是这种情况,您可能应该使用filter
方法
假设这就是你的意思,你可以做下面的事情
obj = obj.filter(function (child){
if(child.x !== 4){
return obj
}
});
// shorter
obj = obj.filter( child => child.x !== 4 );
在这种情况下,obj
变量中只有值不为4的对象可用。所有其他对象(假设代码中没有其他引用)都将被垃圾收集 我假设您试图筛选出数组中具有与给定值匹配的x
的对象。如果是这种情况,您可能应该使用filter
方法
假设这就是你的意思,你可以做下面的事情
obj = obj.filter(function (child){
if(child.x !== 4){
return obj
}
});
// shorter
obj = obj.filter( child => child.x !== 4 );
在这种情况下,obj
变量中只有值不为4的对象可用。所有其他对象(假设代码中没有其他引用)都将被垃圾收集 您的原始对象无效。你真的试过用JavaScript创建它吗?JavaScript对象有键,你的没有。你的意思是“根据属性从对象数组中删除对象”吗?原始对象的可能副本无效。你真的试过用JavaScript创建它吗?JavaScript对象有键,而你的没有。你的意思是“根据属性从对象数组中删除对象”吗?可能是重复的