2017-10-05 86 views
0

我有一個包含一些布爾像這樣的對象:ES6 - 過濾基於真值的對象

{ date: "2017-10-05", name_change: false, age_change: true, ... } 

我想filter()這是真正的鑰匙。 我也需要日期值。我怎樣才能使這filter

問候。

+0

這是不是重複! – Adel

+0

然後你需要更好地解釋你的問題,因爲它確實看起來像是重複的 –

+1

@TheArchetypalPaul - 他正在過濾對象的屬性,而不是數組中的對象。 –

回答

1

Object#keys拿到鑰匙,然後重複鍵陣列與Array#reduce,並建立一個新的對象不包含按鍵,值等於true

const obj = { 
 
    date: "2017-10-05", 
 
    name_change: false, 
 
    age_change: true 
 
}; 
 

 
const result = Object.keys(obj) 
 
    .reduce((o, key) => { 
 
    obj[key] !== true && (o[key] = obj[key]); 
 

 
    return o; 
 
    }, {}); 
 

 
console.log(result);

0

可以使用Array.prototype.filter方法

arrayname.filter(function (el) { 
    return el.name_change; 
});