Skip to content

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']