From 2718c82bbbf5190ebb8e9c54d4cbae6d1259527a Mon Sep 17 00:00:00 2001 From: ascriver Date: Sun, 6 Jan 2019 18:24:52 -0700 Subject: [PATCH 1/6] Changed legacy function substr() to substring() --- compare-strings.js | 4 ++-- test.js | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 test.js diff --git a/compare-strings.js b/compare-strings.js index 9cb5c44..4b122d4 100644 --- a/compare-strings.js +++ b/compare-strings.js @@ -15,7 +15,7 @@ function compareTwoStrings(first, second) { let firstBigrams = new Map(); for (let i = 0; i < first.length - 1; i++) { - const bigram = first.substr(i, 2); + const bigram = first.substring(i, i + 2); const count = firstBigrams.has(bigram) ? firstBigrams.get(bigram) + 1 : 1; @@ -25,7 +25,7 @@ function compareTwoStrings(first, second) { let intersectionSize = 0; for (let i = 0; i < second.length - 1; i++) { - const bigram = second.substr(i, 2); + const bigram = second.substring(i, i + 2); const count = firstBigrams.has(bigram) ? firstBigrams.get(bigram) : 0; diff --git a/test.js b/test.js new file mode 100644 index 0000000..d8dca7d --- /dev/null +++ b/test.js @@ -0,0 +1,5 @@ +const comp = require('./compare-strings.js'); + +let robles = comp.compareTwoStrings('Olive-green table for sale, in extremely good condition.','For sale: green Subaru Impreza, 210,000 miles') + +console.log(robles); \ No newline at end of file From f09e9e927003fb446b2bf510772a4ff3f92838e9 Mon Sep 17 00:00:00 2001 From: ascriver Date: Sun, 6 Jan 2019 18:26:40 -0700 Subject: [PATCH 2/6] Changed legacy function substr() to substring() --- test.js | 5 ----- 1 file changed, 5 deletions(-) delete mode 100644 test.js diff --git a/test.js b/test.js deleted file mode 100644 index d8dca7d..0000000 --- a/test.js +++ /dev/null @@ -1,5 +0,0 @@ -const comp = require('./compare-strings.js'); - -let robles = comp.compareTwoStrings('Olive-green table for sale, in extremely good condition.','For sale: green Subaru Impreza, 210,000 miles') - -console.log(robles); \ No newline at end of file From 351caa1caeb9c2d8d9ff32ddd0934f0fddecb242 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 8 Apr 2019 06:56:34 +0000 Subject: [PATCH 3/6] Bump jasmine from 3.3.1 to 3.4.0 Bumps [jasmine](https://github.com/jasmine/jasmine-npm) from 3.3.1 to 3.4.0. - [Release notes](https://github.com/jasmine/jasmine-npm/releases) - [Commits](https://github.com/jasmine/jasmine-npm/compare/v3.3.1...v3.4.0) Signed-off-by: dependabot[bot] --- package-lock.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 51a12b4..0076955 100644 --- a/package-lock.json +++ b/package-lock.json @@ -63,19 +63,19 @@ "dev": true }, "jasmine": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.3.1.tgz", - "integrity": "sha512-/vU3/H7U56XsxIXHwgEuWpCgQ0bRi2iiZeUpx7Nqo8n1TpoDHfZhkPIc7CO8I4pnMzYsi3XaSZEiy8cnTfujng==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.4.0.tgz", + "integrity": "sha512-sR9b4n+fnBFDEd7VS2el2DeHgKcPiMVn44rtKFumq9q7P/t8WrxsVIZPob4UDdgcDNCwyDqwxCt4k9TDRmjPoQ==", "dev": true, "requires": { - "glob": "^7.0.6", - "jasmine-core": "~3.3.0" + "glob": "^7.1.3", + "jasmine-core": "~3.4.0" } }, "jasmine-core": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.3.0.tgz", - "integrity": "sha512-3/xSmG/d35hf80BEN66Y6g9Ca5l/Isdeg/j6zvbTYlTzeKinzmaTM4p9am5kYqOmE05D7s1t8FGjzdSnbUbceA==", + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.4.0.tgz", + "integrity": "sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==", "dev": true }, "minimatch": { From ddd3c1736ea53d5f8c676491e014e8b07ad36242 Mon Sep 17 00:00:00 2001 From: f-a-r-a-z <46541911+f-a-r-a-z@users.noreply.github.com> Date: Thu, 10 Jan 2019 08:31:26 +1000 Subject: [PATCH 4/6] Refactor compare-strings.js `flattenDeep`, `wordLetterPairs`, and `letterPairs` never seem to be used within the project besides between themselves. --- compare-strings.js | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/compare-strings.js b/compare-strings.js index 9cb5c44..b9fe020 100644 --- a/compare-strings.js +++ b/compare-strings.js @@ -60,10 +60,6 @@ function findBestMatch(mainString, targetStrings) { return { ratings, bestMatch, bestMatchIndex }; } -function flattenDeep(arr) { - return Array.isArray(arr) ? arr.reduce((a, b) => a.concat(flattenDeep(b)), []) : [arr]; -} - function areArgsValid(mainString, targetStrings) { if (typeof mainString !== 'string') return false; if (!Array.isArray(targetStrings)) return false; @@ -71,14 +67,3 @@ function areArgsValid(mainString, targetStrings) { if (targetStrings.find(s => typeof s !== 'string')) return false; return true; } - -function letterPairs(str) { - const pairs = []; - for (let i = 0, max = str.length - 1; i < max; i++) pairs[i] = str.substring(i, i + 2); - return pairs; -} - -function wordLetterPairs(str) { - const pairs = str.toUpperCase().split(' ').map(letterPairs); - return flattenDeep(pairs); -} From 814bd82345fb8c956ae526289f1fa4e994043afb Mon Sep 17 00:00:00 2001 From: Akash K Date: Wed, 1 May 2019 13:06:35 +0100 Subject: [PATCH 5/6] updated jasmine version --- package-lock.json | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0076955..9dab287 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "string-similarity", - "version": "3.0.0", + "version": "3.0.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index ceffcd5..1ab353d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "string-similarity", - "version": "3.0.0", + "version": "3.0.1", "description": "Finds degree of similarity between strings, based on Dice's Coefficient, which is mostly better than Levenshtein distance.", "main": "compare-strings.js", "scripts": { @@ -29,6 +29,6 @@ "author": "Akash Kurdekar (http://untilfalse.com/)", "license": "ISC", "devDependencies": { - "jasmine": "^3.3.0" + "jasmine": "^3.4.0" } } From 4e748c8b7d813f73a64ecb4216d265cfcac59208 Mon Sep 17 00:00:00 2001 From: Akash K Date: Wed, 1 May 2019 13:08:15 +0100 Subject: [PATCH 6/6] readme --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 672a325..2f18dde 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,7 @@ Finds degree of similarity between two strings, based on [Dice's Coefficient](ht * [Release Notes](#release-notes) * [2.0.0](#200) * [3.0.0](#300) + * [3.0.1](#301) ## Usage @@ -119,6 +120,9 @@ stringSimilarity.findBestMatch('Olive-green table for sale, in extremely good co * The algorithm has been tweaked slightly to disregard spaces and word boundaries. This will change the rating values slightly but not enough to make a significant difference * Adding a `bestMatchIndex` to the results for `findBestMatch(..)` to point to the best match in the supplied `targetStrings` array +### 3.0.1 +* Refactoring: removed unused functions; used `substring` instead of `substr` +* Updated dependencies ![Build status](https://codeship.com/projects/2aa453d0-0959-0134-8a76-4abcb29fe9b4/status?branch=master) [![Known Vulnerabilities](https://snyk.io/test/github/aceakash/string-similarity/badge.svg)](https://snyk.io/test/github/aceakash/string-similarity)