循环穿过2个数组以查找对象键匹配的索引,然后删除该对象
我有这两个数组:
array1 = [{firstname: 'abc', age: 24}];
array2 = [{name: 'bcg', age: 33}, {name:'abc', age: 55}];
我想循环遍历数组,然后从第二个数组( array 2
)中删除对象,该对象与数组1中的第一个对象相同。循环遍历两个数组,以查看键值匹配的位置,然后从第二个数组中删除相关对象 array2 [1]
。
我尝试这样做,但它行不通:
for (let p = 0; p < array1.length; p++) {
for (let i = 0; i < array2.length; i++) {
if (array1[p].firstname === array2[i].name) {
array2.splice(i,1);
}
}
}
有没有办法与JavaScript一起使用?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您只需仅使用 array。 filter()与方法。
实时演示:
You can simply achieve it by just using Array.filter() along with Set.has() method.
Live Demo :
您可以用过滤 与 <代码>数组#一些 。
为了增加大量数据的性能,您可以构建a
set
将所有名称存储在第一个数组中,并在恒定时间内查找每个名称。You can achieve this with
Array#filter
in conjunction withArray#some
.For increased performance with a larger amount of data, you can construct a
Set
to store all the names in the first array and lookup each name in constant time.