From 637d37deb859edbde78977c4b11fa7f8d628df69 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Wed, 3 Apr 2019 23:10:00 +0530 Subject: [PATCH] feat: Add not equals (!=) filter --- src/filterRows.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/filterRows.js b/src/filterRows.js index d56b7e3..80fda0a 100644 --- a/src/filterRows.js +++ b/src/filterRows.js @@ -88,6 +88,15 @@ function getFilterMethod(filter) { .map(cell => cell.rowIndex); }, + notEquals(keyword, cells) { + return cells + .filter(cell => { + const value = parseFloat(cell.content); + return value !== keyword; + }) + .map(cell => cell.rowIndex); + }, + range(rangeValues, cells) { return cells .filter(cell => { @@ -110,6 +119,8 @@ function guessFilter(keyword = '') { if (['>', '<', '='].includes(compareString[0])) { compareString = keyword.slice(1); + } else if (compareString.startsWith('!=')) { + compareString = keyword.slice(2); } if (keyword.startsWith('>')) { @@ -139,6 +150,15 @@ function guessFilter(keyword = '') { } } + if (keyword.startsWith('!=')) { + if (isNumber(compareString)) { + return { + type: 'notEquals', + text: Number(keyword.slice(2).trim()) + }; + } + } + if (keyword.split(':').length === 2) { compareString = keyword.split(':'); return {