簡體   English   中英

如何從文字對象數組中刪除元素

[英]How to remove an element from array of literal objects

您好,我正在嘗試從數組數據中的每個對象中刪除操作屬性:

[{productName: "", ... action: ...,}, {productName: "", ...action:...} ...]
var arr  =[{productName: "bbbb", action: 'b'},
         {productName: "aa",action: 'a'}, 
         {productName: "tt",action: 't'}, 
         {productName: "vv",action: 'v'}]


arr = arr.map((d) => {delete d.action ; return d;});

1) 使用map(...)

your_array.map(o => {'productName': o.productName})

請注意,如果您想過濾掉許多屬性,這會更優雅,但如果您只想刪除一個屬性,則需要做更多的工作。

2) delete

for (let i = 0; i < your_array.length; i++){
    delete your_array[i].action
}

使用map遍歷數組並解構對象以僅保留所需字段

 var arr = [{ producet: 'xyz', action: 'abc', other: 'o' }, { producet: 'xyz', action: '123', other: 'o' }, { producet: 'xyz', action: 'sdf', other: 'o' }] const result = arr.map(({ action, ...rest }) => rest); console.log(result);

在 ES6 中,您可以使用帶有解構休息參數的map來分離您想要保留的對象屬性和您想要丟棄的部分:

 const data = [{ id: 1, productName: "1", action: '' }, { id: 1, productName: "2", action: '' }]; let out = data.map(({ action, ...rest }) => rest); console.log(out);

使用數組map它將返回一個新數組。內部map回調創建一個新對象並僅填充那些必需的字段。 不要改變原始數組

 var arr = [{ productName: "1", action: '' }, { productName: "2", action: '' }]; let newArr = arr.map(function(item) { return Object.assign({}, { productName: item.productName }) }); console.log(newArr)

根據文檔,您可以使用delete運算符。

一個簡單的方法是循環遍歷數組arr並從每個對象中刪除屬性。

for (var i = 0; i < arr.length; i++){
    delete arr[i].action;
}

這種方法比其他方法(例如mapfor each )略快

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM