簡體   English   中英

如何通過索引從對象數組中的對象數組中刪除對象javascript

[英]How to delete object from array of objects in array of objects javascript by index

如何通過索引從對象數組中的對象數組中刪除對象。

我想從數組中刪除第一個對象,對象 ID 為“A1”

let data =
[ 
  { id: 'A1',
    value:  [ { uri: 'B45AA03A05B7.jpg', type: 'image/jpeg' },
              { uri: '30A42FBC1146.jpg', type: 'image/jpeg' } ] 
  },
  { id: 'A2',
    value:  [ { uri: 'G455HFG2FF56.jpg', type: 'image/jpeg' },
              { uri: 'TY6DFG7RTGF.jpg', type: 'image/jpeg' } ] 
  }
]

所需的輸出

let data =
[ 
  { id: 'A1',
    value:  [ { uri: '30A42FBC1146.jpg', type: 'image/jpeg' } ] 
  },
  { id: 'A2',
    value:  [ { uri: 'G455HFG2FF56.jpg', type: 'image/jpeg' },
              { uri: 'TY6DFG7RTGF.jpg', type: 'image/jpeg' } ] 
  }
]

我試過這個

const array1 = data.filter((item) => item.id == deleteId)

   if (delIndex > -1) {
     array1[0].value.splice(delIndex, 1);
   }

您可以找到該對象並刪除value的第一個對象。

 let data = [{ id: 'A1', value: [{ uri: 'B45AA03A05B7.jpg', type: 'image/jpeg' }, { uri: '30A42FBC1146.jpg', type: 'image/jpeg' }] }, { id: 'A2', value: [{ uri: 'G455HFG2FF56.jpg', type: 'image/jpeg' }, { uri: 'TY6DFG7RTGF.jpg', type: 'image/jpeg' }] }], deleteId = 'A1', object = data.find(({ id }) => id == deleteId); if (object) object.value.splice(0, 1); console.log(data);

你可以嘗試這樣的事情:

data.reduce((prev,curr) => {
  if (curr.id === "A1") {
    curr.value.shift()
  }
  return [...prev, curr]
}, [])

試試這個,它有效!

// ?. this is optional chaining for javascript operator

data.find(item => item.id === 'A1')?.value.shift();

暫無
暫無

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

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