[英]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 loop
並delete
:
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.