# includes

_includes(collection, value, [fromIndex=0])

检查 value(值) 是否在 collection(集合) 中。如果 collection(集合)是一个字符串,那么检查 value(值,子字符串) 是否在字符串中, 否则做等值比较。 如果指定 fromIndex 是负数,那么从 collection(集合) 的结尾开始检索。

# 参数

  • collection (Array|string): 要检索的集合。
  • value (*): 要检索的值。
  • [fromIndex=0] (number): 要检索的 索引位置。

# 返回值

  • (Boolean): 如果找到匹配的字符串返回 true,否则返回 false。

# 实现

const _includes = function (collection, value, fromIndex = 0) {
    const { length } = collection;
    if (!length) return false;

    let index = fromIndex >= 0 ? fromIndex - 1 : length - 2;
    if (typeof value === 'string') {
        return collection.slice(++index).indexOf(value) !== -1
    } else {
        while (++index < length) {
            if (collection[index] === value) {
                return true
            }
        }
        return false
    }
};

# 测试

_includes([1, 2, 3], 1);
// => true

_includes([1, 2, 3], 1, 2);
// => false

_includes('pebbles', 'eb');
// => true
上次更新于: 3/23/2022, 10:11:04 AM