Nodejs Array Search search(k)

Here you can find the source of search(k)

Method Source Code

Array.prototype.search = function(k){
   var a = this;//from   w  ww . j a v a2  s.  c  o  m
   this.sort(a);
   var max=a.length-1,min=0,mid;

   while(min<=max){
      mid=(max+min)>>>1;
      if(k>a[mid])
         min = mid+1;
      else if(k<a[mid])
         max = mid-1;
      else
         return mid;
   }
   return -1;
}

Related

  1. search(expression)
    Array.prototype.search=function(expression){
      var copy = expression;
      expression = expression.replace(/[a-zA-Z0-9]+/g, "#");
      var numbers = copy.split(/[^a-zA-Z0-9]+/).filter(function(n){return n});
      var operators = expression.split("#").filter(function(n){return n});
      var query = [],oi=0,ni=0;
      for(i = 0; i < expression.length; i++){
          if('-'==expression[i] || expression[i]=='+'){
              query.push(operators[oi++]);
    ...
    
  2. search(key)
    Array.prototype.search = function(key) {
      'use strict';
      var max = this.length - 1;
      var min = 0;
      var count = 0;
      while (min <= max) {
        var mid = Math.floor((min + max) / 2);
        if (this[mid] === key) {
          return {
    ...
    
  3. search(key, value)
    Array.prototype.search = function (key, value) {
        return this.reduce(function (result, el) {
            if (result) return result;
            if (key) {
                if (typeof key === "function") {
                    if (key(el) === value) {
                        return el;
                } else {
    ...
    
  4. search(key, value)
    Array.prototype.search = function (key, value) {
        if (arguments.length == 1) {
            return this.filter(function (e) {
                return e == value;
            });
        if (arguments.length == 2) {
            var k = arguments[0];
            var value = arguments[1];
    ...
    
  5. search(n)
    Array.prototype.search = function(n) {
      var start = 0;
      var end = this.length - 1;
      var result = {count: 0, index: -1, length: this.length};
      while (start <= end) {
        mid = (start + end) / 2 >> 0;
        if (this[start] === n) {
          result.index = start;
          return result;
    ...