【问题标题】:JS list of dictionaries, get first value by conditionJS字典列表,按条件获取第一个值
【发布时间】:2021-04-13 11:27:28
【问题描述】:

给定 JS 中的字典列表,我想获取第一个启用且未删除的字典。

字典将如下所示:

objects= [{'name':'a', 'width': 100, 'deleted': true, 'enabled': true},
          {'name':'b', 'width': 200, 'deleted': false, 'enabled': false},
          {'name':'c', 'width': 300, 'deleted': false, 'enabled': true},
          {'name':'d', 'width': 400, 'deleted': true, 'enabled': true},

我曾经使用objects[0] 获取第一个,但现在我需要考虑删除并启用。如何获得第一个相关值?所以结果应该是{'name':'c', 'width': 300, 'deleted': false, 'enabled': true}

【问题讨论】:

  • objects.find(entry=>entry.enabled && !entry.deleted)

标签: javascript arrays list dictionary object


【解决方案1】:

使用find,如果要在数组中查找第一个符合查找条件的对象。

使用filter,如果要查找数组中所有符合过滤条件的对象。

objects= [{'name':'a', 'width': 100, 'deleted': true, 'enabled': true},
          {'name':'b', 'width': 200, 'deleted': false, 'enabled': false},
          {'name':'c', 'width': 300, 'deleted': false, 'enabled': true},
          {'name':'d', 'width': 400, 'deleted': true, 'enabled': true}
          ];
          
var findOne = objects.find(x => !x.deleted && x.enabled);
console.log(findOne);

var findMany = objects.filter(x => !x.deleted && x.enabled);
console.log(findMany);

【讨论】:

    【解决方案2】:

    查找方法

    您可以使用Array.find 方法查找与给定条件匹配的第一个元素。

    const solution = objects.find(o => o.enabled && !o.deleted);
    

    【讨论】:

      猜你喜欢
      • 2021-11-10
      • 1970-01-01
      • 2016-09-03
      • 2019-02-22
      • 1970-01-01
      • 2019-12-24
      • 2020-03-31
      • 2013-08-22
      • 2016-10-18
      相关资源
      最近更新 更多