@ecomplus/utils
Version:
JS utility functions to E-Com Plus (not only) related apps
39 lines (38 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
/**
* @method
* @memberof ecomUtils
* @name findByProperty
* @description Find object from list by some property value.
* @param {Array} list - List of nested objects
* @param {string} prop - Property name
* @param {number|string} value - Property value to be matched
* @returns {Object.<string, *>|undefined}
*
* @example
* // Find on list of generic objects
* ecomUtils.findByProperty([ { a: 1, b: 1 }, { a: 2 } ], 'a', 1)
* // => { a: 1, b: 1 }
* ecomUtils.findByProperty([ { a: 1 }, { a: 1, b: 1 }, { a: 0 } ], 'a', 1)
* // => { a: 1 }
* ecomUtils.findByProperty([ { a: 0, b: 0 }, { a: 1 } ], 'a', 3)
* // => undefined
*/
var findByProperty = function findByProperty(list, prop, value) {
// must be an array
if (Array.isArray(list)) {
for (var i = 0; i < list.length; i++) {
var obj = list[i];
if (obj && obj[prop] === value) {
// object found
return obj;
}
}
}
return undefined;
};
var _default = exports.default = findByProperty;