bbo
Version:
bbo is a utility library of zero dependencies for javascript.
38 lines (34 loc) • 872 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 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;