UNPKG

ut2

Version:

一个现代 JavaScript 实用工具库。[点击查看在线文档]。

34 lines (33 loc) 1.48 kB
import { IterateeParam } from './internals/types'; /** * 创建一个 `array` 排除 `values` 值的新数组。如果传入迭代函数,会调用数组的每个元素以产生唯一性计算的标准。 * * `iteratee` 调用时会传入一个参数 `value` * * 默认使用了 [`SameValueZero`](https://tc39.es/ecma262/#sec-samevaluezero) 做等值比较。如果 `strictCheck=true` 将使用 [`SameValue`](https://tc39.es/ecma262/#sec-samevalue) 做等值比较。 * * @alias module:Array.difference * @since 1.0.0 * @param {Array} array 要检查的数组。 * @param {Array} values 排除的值。 * @param {Function | string | number | Symbol} [iteratee=identity] 迭代函数,调用每个元素。默认 `identity` * @param {boolean} [strictCheck=false] 严格比较,区分 `0` `-0`。默认 `false` * @returns {Array} 过滤值后的新数组。 * @example * * difference([3, 1, 2], [4, 2]); // [3, 1] * * difference([3.1, 2.2, 1.3], [4.4, 2.5], Math.floor); // [3.1, 1.3] * * difference([{x: 2}, {x: 1}], [{x: 1}], item=>item.x); // [{x: 2}] * * // 如果迭代元素为对象,迭代函数可以直接写入对象属性。 * difference([{x: 2}, {x: 1}], [{x: 1}], 'x'); // [{x: 2}] * * difference([-0, 0], [0]); // [] * * difference([-0, 0], [0], undefined, true); // [-0] * */ declare function difference<T>(array: T[], values: any[], iteratee?: IterateeParam<T>, strictCheck?: boolean): T[]; export default difference;