簡體   English   中英

如何從JavaScript中的數組對象中刪除特定的鍵和值?

[英]How to remove specific key and value from array object in javascript?

在這里,我在這個arrayData中有arrayData數組對象。我有多個對象,我想從該數組對象中刪除索引並鍵入鍵值。如何從此arrayData中刪除?

arrayData : [
  0: {
       index: 0
       is_required: true
       name: "vmvdnksl"
       type: "LONG_TEXT"
     }
  1: {
       index: 1
       is_required: true
       name: "dsvnlk"
       type: "MULTIPLE_SELECTORS"
     }
   ]

刪除索引和類型后,我想要這種類型的結果

 arrayData : [
  0: {
       is_required: true
       name: "vmvdnksl"
     }
  1: {
       is_required: true
       name: "dsvnlk"
     }
   ]

您可以使用rest參數。 當您有很多要保留的鑰匙並只取其中幾個鑰匙時,它將非常方便。

 const arrayData= [{index: 0,is_required: true,name: "vmvdnksl",type: "LONG_TEXT"},{index: 1,is_required: true,name: "dsvnlk",type: "MULTIPLE_SELECTORS"}]; const result = arrayData.map(({type,index,...rest}) => ({...rest})); console.log(result); 

您可以使用delete關鍵字從對象中刪除屬性。

 var arrayData = [ 0: { index: 0, is_required: true, name: "vmvdnksl", type: "LONG_TEXT" }, 1: { index: 1, is_required: true, name: "dsvnlk", type: "MULTIPLE_SELECTORS" } ]; for (var i in arrayData) { for (var j in arrayData[i]) { if (j === 'index' || j === 'type') { delete arrayData[i][j]; } } } console.log(arrayData); 

您可以使用Array.map()destructuring此任務:

 const arrayData = [ { index: 0, is_required: true, name: "vmvdnksl", type: "LONG_TEXT" }, { index: 1, is_required: true, name: "dsvnlk", type: "MULTIPLE_SELECTORS" } ]; let res = arrayData.map(({is_required, name}) => ({is_required, name})); console.log(res); 
 .as-console {background-color:black !important; color:lime;} .as-console-wrapper {max-height:100% !important; top:0;} 

我更喜歡永遠不要更改原始數據,但是在您需要這樣做的情況下,您可以這樣做(或使用delete如其他人所示):

 const arrayData = [ { index: 0, is_required: true, name: "vmvdnksl", type: "LONG_TEXT" }, { index: 1, is_required: true, name: "dsvnlk", type: "MULTIPLE_SELECTORS" } ]; let res = arrayData.forEach( ({is_required, name}, idx, arr) => arr[idx] = ({is_required, name}) ); console.log(arrayData); 
 .as-console {background-color:black !important; color:lime;} .as-console-wrapper {max-height:100% !important; top:0;} 

嘗試使用JavaScript的delete運算符 ,如以下代碼示例所示:

for(let o in arrayData){
    delete arrayData[o].index;
    delete arrayData[o].type
}

對於數組,您可以使用map()函數

  var arrayData = [ { index: 0, is_required: true, name: "vmvdnksl", type: "LONG_TEXT" }, { index: 1, is_required: true, name: "dsvnlk", type: "MULTIPLE_SELECTORS" } ], mappedArrayData = arrayData.map(({is_required, name}) => { return {is_required, name}; }) console.log(mappedArrayData); 

對於對象,請使用delete運算符。

 var arrayData = { 0: { index: 0, is_required: true, name: "vmvdnksl", type: "LONG_TEXT" }, 1: { index: 1, is_required: true, name: "dsvnlk", type: "MULTIPLE_SELECTORS" } }; for (let key in arrayData) { delete arrayData[key].index; delete arrayData[key].type; } console.log(arrayData); 

您可以簡單地使用Array.map()僅顯示必需的屬性:

 const arrayData= [ { index: 0, is_required: true, name: "vmvdnksl", type: "LONG_TEXT" }, { index: 1, is_required: true, name: "dsvnlk", type: "MULTIPLE_SELECTORS" } ]; const result = arrayData.map(({is_required, name}) => ({is_required, name})); console.log(result); 

暫無
暫無

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

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