selectFirst
查找并映射第一个满足条件的数组元素
143 bytes
since v12.2.0
使用方法
selectFirst 函数结合了数组上 find 和 map 操作的功能。它遍历数组,对每个元素应用映射函数,并返回第一个满足给定条件的映射值。如果没有提供条件,它返回第一个非空值的映射值。
当您需要在单个操作中查找和转换元素时,此函数特别有用,可能节省时间并提高代码可读性。
主要特性:
- 在第一个满足条件的元素上短路
- 允许分离的映射和条件函数
- 如果没有元素满足条件或数组为空/空值,返回
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