toggle
切换项目在数组中的存在性
254 bytes
since v12.1.0
使用方法
如果匹配条件的项目在列表中已经存在,它将被移除。如果不存在,它将被添加。
import * as _ from "radashi";
const gods = ["ra", "zeus", "loki"];
_.toggle(gods, "ra"); // => ['zeus', 'loki']_.toggle(gods, "vishnu"); // => ['ra', 'zeus', 'loki', 'vishnu']toggle(list, item, toKey)
您可以传递一个可选的 toKey 函数来确定非原始值的身份。在处理更复杂的数据类型时很有用。
import * as _ from "radashi";
const ra = { name: "Ra" };const zeus = { name: "Zeus" };const loki = { name: "Loki" };const vishnu = { name: "Vishnu" };
const gods = [ra, zeus, loki];
_.toggle(gods, ra, (g) => g.name); // => [zeus, loki]_.toggle(gods, vishnu, (g) => g.name); // => [ra, zeus, loki, vishnu]toggle(list, item, toKey, options)
默认情况下,如果项目不存在,toggle 将追加该项目。如果您需要在前面添加项目,可以在选项参数中覆盖 strategy。
import * as _ from "radashi";
const gods = ["ra", "zeus", "loki"];
_.toggle(gods, "vishnu", (g) => g, { strategy: "prepend" }); // => ['vishnu', 'ra', 'zeus', 'loki']