UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

40 lines (35 loc) 922 B
'use strict'; 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;