Get object keys for filtered values

前端 未结 14 1533
傲寒
傲寒 2021-02-05 03:31

The case is simple - I\'ve got a following object:

Object {1: false, 2: true, 3: false, 4: false, 5: false, 6: false, 7: false, 8: true, 12: false, 13: false, 14         


        
14条回答
  •  不要未来只要你来
    2021-02-05 03:50

    Another potential solution:

    // Your example data
    var data = {1: false, 2: true, 3: false, 4: false, 5: false, 6: false, 7: false, 8: true, 12: false, 13: false, 14: false, 15: false, 16: false, 17: false, 18: false, 19: false};
    
    // Outputs the keys: ["2", "8"]
    _.keys(_.transform(data, function(r, v, k) { v ? r[k] = 1 : null; }));
    
    // Outputs the keys as integers: [2, 8]
    _.map(_.keys(_.transform(data, function(r, v, k) { v ? r[k] = 1 : null; })), _.parseInt)
    

    So basically:

    1. Transform the original object to strip out the false-valued keys
    2. Grab the list of keys from the transformed result
    3. Convert the keys to ints if you need to

提交回复
热议问题