From f5a6804e2b433483e3304e2c3db4f7023d6428e1 Mon Sep 17 00:00:00 2001 From: Denis Sikuler Date: Fri, 24 Mar 2017 00:00:56 +0300 Subject: [PATCH] Make replaceAt faster --- src/timm.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/timm.js b/src/timm.js index d25923d..a4b2294 100755 --- a/src/timm.js +++ b/src/timm.js @@ -227,10 +227,14 @@ export function removeAt(array: Array, idx: number): Array { // -- ``` export function replaceAt(array: Array, idx: number, newItem: T): Array { if (array[idx] === newItem) return array; - return array - .slice(0, idx) - .concat([newItem]) - .concat(array.slice(idx + 1)); + + const len: number = array.length; + const result: Array = Array(len); + for (let i = 0; i < len; i++) { + result[i] = array[i]; + } + result[idx] = newItem; + return result; } // ===============================================