From db0eaabd7aeae5c8f6c5c4db7a9290fa6c59189f Mon Sep 17 00:00:00 2001 From: Xavier Van de Woestyne Date: Tue, 16 Jul 2019 10:34:19 +0200 Subject: [PATCH 1/2] More efficient 'and', 'or' --- desktop/sources/scripts/library.js | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/desktop/sources/scripts/library.js b/desktop/sources/scripts/library.js index 0c9d93c..e5c57bb 100644 --- a/desktop/sources/scripts/library.js +++ b/desktop/sources/scripts/library.js @@ -58,21 +58,11 @@ function Library (ronin) { } this.and = (...args) => { - for (let i = 0; i < args.length; i++) { - if (!args[i]) { - return args[i] - } - } - return args[args.length - 1] + return args.every((x) => x) } this.or = (...args) => { - for (let i = 0; i < args.length; i++) { - if (args[i]) { - return args[i] - } - } - return args[args.length - 1] + return args.some((x) => x) } // Arrays From 1bbe934f6910130b019088bbb085a6742991a97d Mon Sep 17 00:00:00 2001 From: Xavier Van de Woestyne Date: Tue, 16 Jul 2019 14:16:58 +0200 Subject: [PATCH 2/2] Safe version of and/or --- desktop/sources/scripts/library.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/desktop/sources/scripts/library.js b/desktop/sources/scripts/library.js index e5c57bb..e88fb6e 100644 --- a/desktop/sources/scripts/library.js +++ b/desktop/sources/scripts/library.js @@ -57,12 +57,24 @@ function Library (ronin) { return a === b } - this.and = (...args) => { - return args.every((x) => x) + this.and = (a, b, ...rest) => { + let args = [a, b].concat(rest) + for (let i = 0; i < args.length; i++) { + if (!args[i]) { + return args[i] + } + } + return args[args.length - 1] } - this.or = (...args) => { - return args.some((x) => x) + this.or = (a, b, ...rest) => { + let args = [a, b].concat(rest) + for (let i = 0; i < args.length; i++) { + if (args[i]) { + return args[i] + } + } + return args[args.length - 1] } // Arrays