为了账号安全,请及时绑定邮箱和手机立即绑定

试图通过它的特定元素从数组中删除对象

试图通过它的特定元素从数组中删除对象

MYYA 2021-11-18 17:03:29
我得到了一个里面有对象的数组,这些对象里面有元素。我将如何通过元素之一来寻址这些对象之一?let randomARR = [];let a = {"name": "John", "age": 20, "PlaceOfBirth": "Germany"};let b = {"name": "Simon", "age": 20, "PlaceOfBirth": "France"}; let c = {"name": "Michael", "age": 20, "PlaceOfBirth": "USA"};randomARR.push(a);randomARR.push(b);randomARR.push(c);结果:[{"name": "John", "age": 20, "PlaceOfBirth": "Germany"}, {"name": "Simon", "age": 20, "PlaceOfBirth": "France"}, {"name": "Michael", "age": 20, "PlaceOfBirth": "USA"}]假设我想通过对象的元素"name"寻址对象,而不是它在数组中的位置,将对象 b (name: Simon) 从数组中删除。
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

您可以使用Array.prototype.filter


filter() 方法创建一个新数组,其中包含通过提供的函数实现的测试的所有元素。


它遍历数组的所有元素,并根据布尔值返回将其从结果数组中保留/删除。您可以将其设置为当前数组以覆盖它。


let objArr = [{"name": "John", "age": 20, "PlaceOfBirth": "Germany"}, {"name": "Simon", "age": 20, "PlaceOfBirth": "France"}, {"name": "Michael", "age": 20, "PlaceOfBirth": "USA"}]


let newObj = objArr.filter(obj => obj.name !== "Simon");


// objArr = objArr.filter(obj => obj.name !== "Simon"); to overwrite


查看完整回答
反对 回复 2021-11-18
?
慕哥9229398

TA贡献1877条经验 获得超6个赞

randomARR = randomARR.filter(o => o.name != 'Simon') ;

这是我认为要走的路。


查看完整回答
反对 回复 2021-11-18
  • 2 回答
  • 0 关注
  • 132 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信