From 724d5ff98b2173ff301b7a7d8955e2e482a1fdaf Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Wed, 26 Aug 2015 15:35:04 +0300 Subject: [PATCH 1/2] add possibility to use function as the second argument --- lib/intersperse.js | 3 ++- test/test.js | 21 ++++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/intersperse.js b/lib/intersperse.js index c2224ff..16293d4 100644 --- a/lib/intersperse.js +++ b/lib/intersperse.js @@ -1,11 +1,12 @@ module.exports = intersperse; -function intersperse(arr, obj) { +function intersperse(arr, value) { if (!arr.length) return []; if (arr.length === 1) return arr.slice(0); var items = [arr[0]]; for (var i = 1, len = arr.length; i < len; ++i) { + var obj = typeof value === 'function' ? value(arr[i - 1], arr[i], i) : value; items.push(obj, arr[i]); } diff --git a/test/test.js b/test/test.js index ac28f6f..c737fe9 100644 --- a/test/test.js +++ b/test/test.js @@ -27,4 +27,23 @@ describe('intersperse', function () { assert.deepEqual(newArr, [1, 'a', 2, 'a', 3]); assert.deepEqual(arr, [1, 2, 3]); }); -}); \ No newline at end of file + + it("should accept function as a parameter", function () { + var arr = [1, 2, 3]; + var newArr = intersperse(arr, function() { + return 'a'; + }); + + assert.deepEqual(newArr, [1, 'a', 2, 'a', 3]); + assert.deepEqual(arr, [1, 2, 3]); + }); + + it("should input previous, next and index values for function", function () { + var arr = [1, 2]; + var newArr = intersperse(arr, function(prev, next, i) { + assert.equal(prev, 1); + assert.equal(next, 2); + assert.equal(i, 1); + }); + }); +}); From 21fad4fd4ae008a072be4a3693affd6d67f074b6 Mon Sep 17 00:00:00 2001 From: Riku Rouvila Date: Fri, 4 May 2018 22:42:04 +0100 Subject: [PATCH 2/2] update version number --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ea09ef1..f327d39 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "intersperse", - "version": "1.0.0", + "version": "1.1.0", "description": "Add an object to an array between each element", "main": "lib/intersperse.js", "directories": {