簡體   English   中英

根據javascript中的id刪除對象內部數組中的對象

[英]remove object inside array inside an object based on id in javascript

如標題所述,我正在嘗試根據ID刪除對象內部數組中的對象。 請在下面查看我的對象:

{"satisfied":[],
"support":
[
    {"id":187,"question":"supot1"}
],
"agree":
[
    {"id":891,"question":"asdff"},
    {"id":394,"question":"Dos"},
    {"id":495,"question":"Tres"}
],
"yesno":[],
"multichoice":
[
    {"id":785,"question":"multi1",
    "choices":["item1","item2", "item3"]},
    {"id":986,"question":"multi2",
    "choices":["item4", "item5", "item6"]}
],
"oneofmany":[]
}

例如,我想刪除{“ id”:891,“ question”:“ asdff”},我將如何處理?

要遍歷所有這些子數組,可以遍歷對象的值:

 for(const array of Object.values(input)) {

然后在該數組中搜索匹配的對象,並在必要時將其拼接起來:

  const toFind = 891;
  const index = array.findIndex(it => it.id === toFind);
  if(index !== -1) 
    array.splice(index, 1);
 }

嘗試這個

 var obj = { "satisfied":[], "support": [ {"id":187,"question":"supot1"} ], "agree": [ {"id":891,"question":"asdff"}, {"id":394,"question":"Dos"}, {"id":495,"question":"Tres"} ], "yesno":[], "multichoice": [ {"id":785,"question":"multi1","choices":["item1","item2", "item3"]}, {"id":986,"question":"multi2","choices":["item4", "item5", "item6"]} ], "oneofmany":[] } let id= {"id":891,"question":"asdff"}.id; //need to remove Object.keys(obj).forEach(function(key) { var index = obj[key].map(x => {return x.id;}).indexOf(id); if (index > -1) { obj[key].splice(index, 1); } }); console.log(obj); 

我用lodash(_.remove),工作正常

  var origArray = questions_list[$itemType];
   _.remove(origArray, function(n){
          return n.id == $itemId;
  });

暫無
暫無

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

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