在typescript中从数组中删除对象

时间:2018-03-12 12:10:59

标签: angular typescript angular2-template

如何从typescript中删除数组中的对象?

"revenues":[
{
        "drug_id":"20",
        "quantity":10
},
{
        "drug_id":"30",
        "quantity":1    
}]

所以我想从所有对象中删除drug_id。 我怎么做到这一点? 谢谢!

3 个答案:

答案 0 :(得分:5)

你可以使用它:

this.revenues = this.revenues.map(r => ({quantity: r.quantity}));

有关更通用的方法:

removePropertiesFromRevenues(...props: string[]) {
  this.revenues = this.revenues.map(r => {
    const obj = {};
    for (let prop in r) { if (!props.includes(prop) { obj[prop] = r[prop]; } }
    return obj;
  });
}

答案 1 :(得分:3)

您可以像这样使用Array.prototype.map

revenues = this.revenues.map(r => ({quantity: r.quantity}));

Array.prototype.map将获取revenues数组的每个项目,您可以在返回之前对其进行转换。

  

map()方法创建一个新数组,其中包含调用a的结果   为调用数组中的每个元素提供了函数。

因此,如果您想要例如每个数量加倍并添加或重命名某些字段,您可以执行以下操作:

revenues = this.revenues.map(r => ({quantity: r.quantity, quantity2: r.quantity * 2}));

答案 2 :(得分:1)

这应该有效

revenues.forEach((object) => delete object.drug_id );