📌  相关文章
📜  lodash 在数组中查找对象 - Javascript (1)

📅  最后修改于: 2023-12-03 15:02:47.442000             🧑  作者: Mango

使用 lodash 在数组中查找对象

如果你需要在数组中查找对象,可以使用 lodash 库中的一些函数。 lodash 是一个 JavaScript 实用工具库,提供了许多函数来简化和优化我们的开发过程。

安装和引入

首先,你需要安装 lodash 库。你可以通过 npm 或者 yarn 安装:

npm install lodash
yarn add lodash

然后,你可以在你的 JavaScript 代码中引入 lodash 库:

import _ from 'lodash'
在数组中查找对象
find

_.find(array, [predicate=_.identity], [fromIndex=0])

find 函数接收三个参数:要查找的数组,一个 predicate 函数和可选的 fromIndex 参数(表示从哪个索引开始查找)。它会返回数组中第一个满足 predicate 函数条件的对象。

const users = [
  { userId: 1, name: 'John' },
  { userId: 2, name: 'Jane' },
  { userId: 3, name: 'Bob' },
]

const user = _.find(users, { name: 'Jane' })

console.log(user) // { userId: 2, name: 'Jane' }
filter

_.filter(collection, [predicate=_.identity])

filter 函数接收两个参数:要查找的数组(或者对象),一个 predicate 函数。它会返回符合 predicate 函数条件的所有对象组成的新数组。

const users = [
  { userId: 1, name: 'John' },
  { userId: 2, name: 'Jane' },
  { userId: 3, name: 'Bob' },
]

const results = _.filter(users, (user) => user.name.includes('o'))

console.log(results) // [{ userId: 1, name: 'John' }, { userId: 3, name: 'Bob' }]
findIndex

_.findIndex(array, [predicate=_.identity], [fromIndex=0])

findIndex 函数接收三个参数:要查找的数组,一个 predicate 函数和可选的 fromIndex 参数(表示从哪个索引开始查找)。它会返回数组中第一个满足 predicate 函数条件的对象的索引。

const users = [
  { userId: 1, name: 'John' },
  { userId: 2, name: 'Jane' },
  { userId: 3, name: 'Bob' },
]

const index = _.findIndex(users, { name: 'Jane' })

console.log(index) // 1
reject

_.reject(collection, [predicate=_.identity])

reject 函数接收两个参数:要查找的数组(或者对象),一个 predicate 函数。它会返回符合 predicate 函数条件的所有对象组成的新数组的补集。

const users = [
  { userId: 1, name: 'John' },
  { userId: 2, name: 'Jane' },
  { userId: 3, name: 'Bob' },
]

const results = _.reject(users, (user) => user.name.includes('o'))

console.log(results) // [{ userId: 2, name: 'Jane' }]
总结

lodash 库提供了许多函数来简化和优化数组操作。在处理包含对象的数组时,findfilterfindIndexreject 函数尤其有用。