Nodejs Array Filter singleOrNone(filter)

Here you can find the source of singleOrNone(filter)

Method Source Code

Array.prototype.singleOrNone = function(filter) {
   var matches = this.filter(filter);
   if (matches.length > 1) {
      throw new Error("Expected 1 but found many");
   }//  w  ww  . j av a  2  s  .co  m
   if (matches.length == 0) {
      return null;
   }

   return matches[0];
}

Related

  1. filterEmpty()
    Array.prototype.filterEmpty = function ()
        var arr = this;
        var i = arr.length;
        while (i--)
            if (arr[i] instanceof Array)
                arr[i] = arr[i].filterEmpty();
    ...
    
  2. filterSyncasync (callback, thisArg)
    Array.prototype.filterSync = async function (callback, thisArg) {
      let filterResult = await Promise.all(this.map(callback))
      return this.filter((_, index) => filterResult[index])
    
  3. filterUnique()
    Array.prototype.filterUnique = function() {
        'use strict';
        var arr = [];
        var orig = this;
        orig.forEach(function(a, i) {
            if (arr.indexOf(a) < 0) {
                arr.push(a);
            } else {
                orig.splice(i, 1);
    ...
    
  4. mfilter(fun)
    Array.prototype.mfilter =  function (fun) {
      var filtered = [];
      for(let i = 0; i < this.length; i++) {
        if (fun(this[i], i, this)) filtered.push(this[i]);
      return filtered;
    };
    var returnarr = [1,2,3,4,5,6].mfilter(function(element, index, arr) {
      return element > 5;
    ...
    
  5. single(filter)
    Array.prototype.single = function(filter) {
      var matches = this.filter(filter);
      if (matches.length == 0) {
        throw new Error("Expected 1 but found 0");
      if (matches.length > 1) {
        throw new Error("Expected 1 but found many");
      return matches[0];
    ...