Skip to content

selectFirst

查找并映射第一个满足条件的数组元素

143 bytes
since v12.2.0

使用方法

selectFirst 函数结合了数组上 findmap 操作的功能。它遍历数组,对每个元素应用映射函数,并返回第一个满足给定条件的映射值。如果没有提供条件,它返回第一个非空值的映射值。

当您需要在单个操作中查找和转换元素时,此函数特别有用,可能节省时间并提高代码可读性。

主要特性:

  • 在第一个满足条件的元素上短路
  • 允许分离的映射和条件函数
  • 如果没有元素满足条件或数组为空/空值,返回 undefined
import * as _ from "radashi";
// 查找第一个偶数并将其翻倍
_.selectFirst(
[1, 3, 4, 6, 8],
(x) => x * 2,
(x) => x % 2 === 0
);
// => 8
// 查找第一个非空字符串并转换为大写
_.selectFirst(
["", null, "hello", "world"],
(s) => s?.toUpperCase(),
(s) => s !== null && s !== ""
);
// => 'HELLO'
// 查找具有特定属性的第一个对象并提取值
const users = [
{ id: 1, name: "Alice", age: 30 },
{ id: 2, name: "Bob", age: 25 },
{ id: 3, name: "Charlie", age: 35 },
];
_.selectFirst(
users,
(user) => user.name,
(user) => user.age > 30
);
// => 'Charlie'
// 使用默认条件(非空值)
_.selectFirst([null, undefined, 0, "", false, "found"], (x) => x);
// => 0