Nodejs Array Search search(n)

Here you can find the source of search(n)

Method Source Code

Array.prototype.search = function(n) {
  var start = 0;/* w w w .j  a  v  a 2 s.co m*/
  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;
    } else if (this[end] === n) {
      result.index = end;
      return result;
    } else if (this[mid] === n) {
      result.index = mid;
      return result;
    } else if (this[mid] > n) {
      end = mid - 1;
      start += 1;
    } else {
      start = mid + 1;
      end -= 1;
    }
    result.count += 1;
  }
  return result;
};

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(k)
    Array.prototype.search = function(k){
      var a = this;
      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])
    ...
    
  3. 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 {
    ...
    
  4. 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 {
    ...
    
  5. 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];
    ...
    
  6. search(search_func)
    Array.prototype.search = function(search_func){
        for (var i= 0; i<this.length; i++){
            if (search_func(this[i]) == 0)
                return this[i]
        return null;
    
  7. search(v)
    Array.prototype.search = function(v){
      for (i=0;i<this.length;i++) {
        if (this[i]===v) return i;
    
  8. search(value)
    Array.prototype.search = function(value){
      var startIndex  = 0,
      stopIndex = this.length - 1,
      middle = Math.floor((stopIndex + startIndex)/2);
      var count = 0;
      while(this[middle] != value && startIndex < stopIndex){
        if (value < this[middle]){
          stopIndex = middle - 1;
        }else if (value > this[middle]){
    ...
    
  9. search(value)
    Array.prototype.search = function(value){
      var startIndex  = 0,
      stopIndex = this.length - 1,
      middle = Math.floor((stopIndex + startIndex)/2);
      var count = 0;
      while(this[middle] != value && startIndex < stopIndex){
        count+=1;
        if (value < this[middle]){
          stopIndex = middle - 1;
    ...