【问题标题】:How can I check if an element exists in array of objects using lodash [duplicate]如何使用lodash检查对象数组中是否存在元素[重复]
【发布时间】:2018-05-08 23:09:51
【问题描述】:

假设我有以下数组:

var users = [
    {id: 3, name: "sally"}
    {id: 5, name: "bob"}
    {id: 40, name: "joe"}
    {id: 67, name: "eve"}
    {id: 168, name: "bob"}
    {id: 269, name: "amanda"}
]

我需要运行一个 loadash 函数,如果例如 name == "bob" 存在于数组中,则无论它在数组中存在多少次,它都会返回 true。

我想知道是否有一个我可以使用的函数,可以使用 lodash(虽然不一定),它会返回 true 或 false,表明目标数组中存在一个对象。

谢谢

【问题讨论】:

  • 这个很不清楚。例如标题说“get true or false”,问题只说“return true”。给定您提供的数组,您期望的输出是什么?我可能不会说你可能想使用mapfilter。如果您只想知道“bob”是否在数组中,some 将起作用(或_.find
  • 在 lodash _.find(users, ['name', 'Bob"]);
  • 使用原生JS:var test = users.some(u => u.name === "bob");.
  • 使用 lodash:var test = _.some(users, ["name", "bob"]);.

标签: javascript arrays object lodash


【解决方案1】:

您可以使用过滤器功能搜索您的数组并找到具有给定名称的对象。

var users = [
    {id: 3, name: "sally"},
    {id: 5, name: "bob"},
    {id: 40, name: "joe"},
    {id: 67, name: "eve"},
    {id: 168, name: "bob"},
    {id: 269, name: "amanda"},
];

function find(name) {
    return !!users.find(x => x.name === name);
}

更多关于过滤功能的内容可以查看here

【讨论】:

  • 你可以添加一点解释
  • @entio 请进一步解释一下
  • @entio 我误解了你的评论,添加了链接和基本解释
猜你喜欢
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-31
  • 2019-10-12
相关资源
最近更新 更多