From 01c3bf3301a1d09a715879f0f9362b7d318bb2c3 Mon Sep 17 00:00:00 2001 From: John Redden Date: Wed, 2 Dec 2020 23:14:14 -0500 Subject: [PATCH] Completed Lab --- ArrayUtils.js | 91 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 82 insertions(+), 9 deletions(-) diff --git a/ArrayUtils.js b/ArrayUtils.js index 2869d1e..6de3c2a 100644 --- a/ArrayUtils.js +++ b/ArrayUtils.js @@ -1,21 +1,94 @@ class ArrayUtils{ - isEmpty(array){return false;} + isEmpty(array){ + if(array[0]) { + return false; + } else { + return true; + } + } - append(original, value){return original;} + append(original, value){ + original.push(value); + return original; + } - clone(original){return original;} + clone(original){ + let copy = original; + return copy; + } - subArray(original, from, to){return original;} + subArray(original, from, to){ + let newArray = []; + for(let i = from; i <= to; i++) { + newArray.push(original[i]); + } + return newArray; + } - equals(arr1, arr2){return false;} + equals(arr1, arr2){ + let mismatch = 0; + if(arr1.length > arr2.length) { + for(let i = 0; i < arr1.length; i++) { + if(arr1[i] !== arr2[i]) { + mismatch ++; + break; + } + } + } else { + for(let i = 0; i < arr2.length; i++) { + if(arr1[i] !== arr2[i]) { + mismatch ++; + break; + } + } + } + if(mismatch === 0){ + return true; + } else { + return false; + } + } - fill(original, value){} + fill(original, value){ + for(let i = 0; i < original.length; i++) { + original[i] = value; + } + return original; + } - indexOf(original, value){return -1;} + indexOf(original, value){ + let match; + for(let i = 0; i < original.length; i++) { + if(original[i] === value) { + match = i; + break; + } + } + if(match != null) { + return match; + } else { + return -1; + } + } - remove(original, value){return original;} + remove(original, value){ + let copy = original; + for(let i = 0; i < copy.length; i++) { + if(copy[i] === value) { + copy.splice(i, 1); + break; + } + } + return copy; + } - reverse(original){} + reverse(original){ + let opposite = []; + for(let i = 0; i < original.length; i++) { + opposite.unshift(original[i]); + } + return opposite; + } } \ No newline at end of file