UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

39 lines (35 loc) 906 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 find(src, func) { // eslint-disable-next-line no-undef-init var rst = undefined; forEach(src, (item, key, obj) => { if (isFunction(func)) { if (func(item, key, obj) === true) { rst = item; return false; } } else if (is(item, func)) { rst = item; 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 = item; return false; } } }); return rst; } export default find;