'use strict';
|
|
|
|
var _require = require('../helpers/is'),
|
|
isFunction = _require.isFunction;
|
|
|
|
module.exports = function search(valueOrFunction, strict) {
|
|
var _this = this;
|
|
|
|
var valueFn = valueOrFunction;
|
|
|
|
if (isFunction(valueOrFunction)) {
|
|
valueFn = this.items.find(function (value, key) {
|
|
return valueOrFunction(value, key);
|
|
});
|
|
}
|
|
|
|
var index = false;
|
|
|
|
if (Array.isArray(this.items)) {
|
|
var itemKey = this.items.filter(function (item) {
|
|
if (strict === true) {
|
|
return item === valueFn;
|
|
}
|
|
|
|
return item === Number(valueFn) || item === String(valueFn);
|
|
})[0];
|
|
|
|
index = this.items.indexOf(itemKey);
|
|
} else {
|
|
return Object.keys(this.items).filter(function (prop) {
|
|
if (strict === true) {
|
|
return _this.items[prop] === valueFn;
|
|
}
|
|
|
|
return _this.items[prop] === Number(valueFn) || _this.items[prop] === valueFn.toString();
|
|
})[0] || false;
|
|
}
|
|
|
|
if (index === -1) {
|
|
return false;
|
|
}
|
|
|
|
return index;
|
|
};
|