尝试通过特定元素将对象从数组中删除

时间:2019-10-12 18:11:06

标签: javascript

我有一个数组,里面有对象,这些对象里面有元素。我将如何通过元素之一解决这些对象之一?

<table *ngFor="let table of specs.specs" class="table">
  <thead class="head">
    <tr>
      <th>
        {{ table.title }}
      </th>
    </tr>
  </thead>




  <tbody>
    <tr *ngFor="let detals of table.specs">
      <td>
        {{ detals.key }}
      </td>
      <td>
        {{ detals.value }}
      </td>
    </tr>
  </tbody>
</table>

结果:

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” 而不是它在数组中的位置来寻址对象b(名称:Simon),将其从数组中删除。

2 个答案:

答案 0 :(得分:2)

您可以使用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

答案 1 :(得分:0)

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

这是我认为要走的路。