UNPKG

can

Version:

MIT-licensed, client-side, JavaScript framework that makes building rich web applications easy.

55 lines (54 loc) 2.02 kB
/*! * CanJS - 2.3.34 * http://canjs.com/ * Copyright (c) 2018 Bitovi * Mon, 30 Apr 2018 20:56:51 GMT * Licensed MIT */ /*can@2.3.34#util/array/each*/ define([ 'can/util/can', 'can/util/isArrayLike' ], function (can) { can.each = function (elements, callback, context) { var i = 0, key, len, item; if (elements) { if (can.isArrayLike(elements)) { if (can.List && elements instanceof can.List) { for (len = elements.attr('length'); i < len; i++) { item = elements.attr(i); if (callback.call(context || item, item, i, elements) === false) { break; } } } else { for (len = elements.length; i < len; i++) { item = elements[i]; if (callback.call(context || item, item, i, elements) === false) { break; } } } } else if (typeof elements === 'object') { if (can.Map && elements instanceof can.Map || elements === can.route) { var keys = can.Map.keys(elements); for (i = 0, len = keys.length; i < len; i++) { key = keys[i]; item = elements.attr(key); if (callback.call(context || item, item, key, elements) === false) { break; } } } else { for (key in elements) { if (Object.prototype.hasOwnProperty.call(elements, key) && callback.call(context || elements[key], elements[key], key, elements) === false) { break; } } } } } return elements; }; return can; });