1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-11-26 19:47:20 +00:00

allows to break out of $tw.utils.each

Will improve performance with `$tw.utils.each` callbacks breaking out of
the iteration via `return false;`.
This commit is contained in:
Tobias Beer 2014-11-26 17:51:27 +01:00
parent cb9506a166
commit 1e47a62c2a

View File

@ -62,14 +62,19 @@ $tw.utils.isDate = function(value) {
Iterate through all the own properties of an object or array. Callback is invoked with (element,title,object) Iterate through all the own properties of an object or array. Callback is invoked with (element,title,object)
*/ */
$tw.utils.each = function(object,callback) { $tw.utils.each = function(object,callback) {
var f; var next, f;
if(object) { if(object) {
if(Object.prototype.toString.call(object) == "[object Array]") { if(Object.prototype.toString.call(object) == "[object Array]") {
object.forEach(callback); for (f = 0; f < object.length; f++) {
next = callback(object[f],f);
if (next === false) break;
}
} else { } else {
for(f in object) { for(f in object) {
if(Object.prototype.hasOwnProperty.call(object,f)) { if(Object.prototype.hasOwnProperty.call(object,f)) {
callback(object[f],f,object); next = callback(object[f],f,object);
if (next === false) break;
} }
} }
} }
@ -1958,4 +1963,4 @@ if(typeof(exports) !== "undefined") {
exports.TiddlyWiki = _boot; exports.TiddlyWiki = _boot;
} else { } else {
_boot(window.$tw); _boot(window.$tw);
} }