UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

38 lines (34 loc) 872 B
import isObject from './is_object.js'; import './get_tag.js'; import './is_array.js'; import isFunction from './is_function.js'; import forEach from './for_each.js'; import is from './is.js'; import './is_date.js'; import isShallowEqual from './is_shallow_equal.js'; function findIndex(src, func) { var rst = -1; forEach(src, (item, index, obj) => { if (isFunction(func)) { if (func(item, index, obj) === true) { rst = index; return false; } } else if (is(item, func)) { rst = index; return false; } else if (isObject(item) && isObject(func)) { var subEqual = true; forEach(func, (v, k) => { subEqual = isShallowEqual(item[k], v); return subEqual; }); if (subEqual) { rst = index; return false; } } }); return rst; } export default findIndex;