2016-07-25 11 views
1

を使用してキーが含まれています。そこから、私は配列のキーだけを取得したい。フィルタリングオブジェクト配列は、私は次のオブジェクトの配列を持っているLodash

例えば、

[running, swimming] 

私は、次の経由真理ブールを持っている値を削除の最初の部分を持っている:

var filtered = _.pick(hobbies, function(value, key) {return !value;}); 

私は鍵を持っているように、現在の配列を「フラット化」するための最良の方法だろう何値?それは、私はあなたがObject.keysArray.prototype.filterを使用してそれを行うことを示唆している、純粋なJavaScriptで可能であるため

答えて

3

Lodash _.keys()機能は、あなたが求めているものを正確に提供のために:

var hobbies = { 
 
    running: false, 
 
    swimming: false, 
 
    drawing: true 
 
}; 
 

 
var filtered = _.keys(_.pick(hobbies, function(value) {return !value;})); 
 

 
console.log(filtered); 
 

 
// alternate approach using chain notation 
 
var keys = _ 
 
    .chain(hobbies) 
 
    .pick(v => !v) 
 
    .keys(); 
 

 
console.log(keys);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/3.9.3/lodash.js"></script>
012 Lodash 4.xで、 _.pick()が変更されているとあなたの代わりに _.pickBy() aboceを使用する必要があること

注意。

3

var obj = { 
 
    running: false, 
 
    swimming: false, 
 
    drawing: true 
 
}; 
 

 
var items = Object.keys(obj).filter(k => !obj[k]); 
 
console.log(JSON.stringify(items));

関連する問題