@jdeighan/coffee-utils 7.0.22 → 7.0.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jdeighan/coffee-utils",
3
3
  "type": "module",
4
- "version": "7.0.22",
4
+ "version": "7.0.23",
5
5
  "description": "A set of utility functions for CoffeeScript",
6
6
  "main": "coffee_utils.js",
7
7
  "exports": {
@@ -202,6 +202,19 @@ export isInteger = (x) ->
202
202
 
203
203
  # ---------------------------------------------------------------------------
204
204
 
205
+ export isUniqueList = (lItems) ->
206
+
207
+ if ! lItems?
208
+ return true # empty list is unique
209
+ h = {}
210
+ for item in lItems
211
+ if h[item]
212
+ return false
213
+ h[item] = 1
214
+ return true
215
+
216
+ # ---------------------------------------------------------------------------
217
+
205
218
  export uniq = (lItems) ->
206
219
 
207
220
  return [...new Set(lItems)]
@@ -202,6 +202,23 @@ export var isInteger = function(x) {
202
202
  }
203
203
  };
204
204
 
205
+ // ---------------------------------------------------------------------------
206
+ export var isUniqueList = function(lItems) {
207
+ var h, i, item, len;
208
+ if (lItems == null) {
209
+ return true; // empty list is unique
210
+ }
211
+ h = {};
212
+ for (i = 0, len = lItems.length; i < len; i++) {
213
+ item = lItems[i];
214
+ if (h[item]) {
215
+ return false;
216
+ }
217
+ h[item] = 1;
218
+ }
219
+ return true;
220
+ };
221
+
205
222
  // ---------------------------------------------------------------------------
206
223
  export var uniq = function(lItems) {
207
224
  return [...new Set(lItems)];