簡體   English   中英

如何刪除一個不在另一個對象中的對象的屬性

[英]How delete properties of one object that are not in another object

說我有兩個對象,如下所示。

let a = {Friday: [1, 2 3], Saturday: [2,4,2], Sunday: [1,4]}
let b = {Friday: [], Saturday: []}

我需要某種方式從a中刪除不在b所有鍵值對,因此結果將是:

{Friday: [1, 2 3], Saturday: [2,4,2]}

只需使用for loopdelete

  • 遍歷a中的所有屬性
  • 檢查b中是否存在該屬性,如果不存在,只需從a刪除該屬性。

 let a = {Friday: [1, 2, 3], Saturday: [2,4,2], Sunday: [1,4]}; let b = {Friday: [], Saturday: []}; for(let key in a){ if(!(key in b)) delete a[key]; } console.log(a); 

  • 使用Object.keys獲取b的鍵
  • 使用reduce()上,要建立一個對象,其價值將是a

 let a = {Friday: [1, 2, 3], Saturday: [2,4,2], Sunday: [1,4]}; let b = {Friday: [], Saturday: []} let res = Object.keys(b).reduce((ac,k) => (ac[k] = a[k],ac),{}); console.log(res) 

如果您對一支襯板感到困惑。 下面是更容易理解的版本。

let res = Object.keys(b).reduce((ac,k) => {
   ac[k] = a[a];
   return ac;
},{});

你可以得到的所有鍵a ,從這個刪除的那些b和刪除的性能a吧。

 var a = { Friday: [1, 2, 3], Saturday: [2, 4, 2], Sunday: [1, 4] }, b = { Friday: [], Saturday: [] }; Object .keys(a) .filter(k => !(k in b)) .forEach(Reflect.deleteProperty.bind(null, a)); console.log(a); 

最簡單的方法是使用for循環if語句

// Removes the pairs from A that are not in B
for (let key in a) if (!b[key]) delete a[key]

暫無
暫無

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

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