bbo
Version:
bbo is a utility library of zero dependencies for javascript.
40 lines (35 loc) • 922 B
JavaScript
;
var is_object = require('./is_object.js');
require('./get_tag.js');
require('./is_array.js');
var is_function = require('./is_function.js');
var for_each = require('./for_each.js');
var is = require('./is.js');
require('./is_date.js');
var is_shallow_equal = require('./is_shallow_equal.js');
function findIndex(src, func) {
var rst = -1;
for_each(src, (item, index, obj) => {
if (is_function(func)) {
if (func(item, index, obj) === true) {
rst = index;
return false;
}
} else if (is(item, func)) {
rst = index;
return false;
} else if (is_object(item) && is_object(func)) {
var subEqual = true;
for_each(func, (v, k) => {
subEqual = is_shallow_equal(item[k], v);
return subEqual;
});
if (subEqual) {
rst = index;
return false;
}
}
});
return rst;
}
module.exports = findIndex;