bbo
Version:
bbo is a utility library of zero dependencies for javascript.
39 lines (35 loc) • 906 B
JavaScript
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;