簡體   English   中英

從 object 中的數組中刪除除特定項之外的所有項目

[英]Remove all items except specific from array inside object

試圖從 object 中的數組中刪除所有項目,但出現此錯誤無法刪除 [object Array] 的屬性“0”

object 陣列:

       let tempBrand = [
          {
         name: "Toshiba",
         models:["Toshiba Excite Pro","Toshiba Regza AT300","Toshiba Regza AT1S0","Toshiba Folio 
         100","Toshiba G500","Toshiba AT720"]
         }
        ]

       let tagsData= ["Toshiba Regza AT300","Toshiba Regza AT1S0"]

這就是我想要做的。

       for (let i = 0; i < tempBrand.length; i++){
            tempBrand[i].models.length = 0;
            for (let j = 0; j < tempBrand[i].models.length; j++){
                if (tempBrand[i].models[j] !== tagsData[i]) {
                    delete tempBrand[i].models[j];
                }
            }
        }

我無法准確理解您要實現的目標,但這是我從您的問題中理解的實現。 正如您更新的問題,這里是更新的答案。 如果您想堅持使用迭代方法,您可以使用該方法,或者如評論中所述,您可以使用 es6 方法進行函數式編碼。

let tempBrand = [
         {
         name: "Toshiba",
         models:["Toshiba Excite Pro","Toshiba Regza AT300","Toshiba Regza AT1S0","Toshiba Folio 100","Toshiba G500","Toshiba AT720"]
        }
        ]

       let tagsData= ["Toshiba Regza AT300","Toshiba Regza AT1S0"];
 
 for (let i=0 ; i<tempBrand.length;i++)
for(let j=0 ; j<tempBrand[i].models.length;j++){
    if(tagsData.includes(tempBrand[i].models[j]))
    {
      console.log({item : tempBrand[i].models[j]});
      tempBrand[i].models.splice(j, 1); 
     }   
}
console.log({tempBrand})

暫無
暫無

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

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