Heim  >  Artikel  >  Web-Frontend  >  in_array-Funktion in JavaScript_javascript-Fähigkeiten implementiert

in_array-Funktion in JavaScript_javascript-Fähigkeiten implementiert

WBOY
WBOYOriginal
2016-05-16 16:38:371292Durchsuche

In JS gibt es keine Funktion, mit der direkt ermittelt werden kann, ob sich ein Wert in einem Array befindet. In PHP gibt es beispielsweise die Funktion in_array(). Aber wir können eine Funktion wie in_array() schreiben, um zu bestimmen, ob ein Wert in der Funktion vorhanden ist.

/**
 * JS判断一个值是否存在数组中
 */
 
// 定义一个判断函数
var in_array = function(arr){
  // 判断参数是不是数组
  var isArr = arr && console.log(
      typeof arr==='object' ? arr.constructor===Array ? arr.length ? arr.length===1 ? arr[0]:arr.join(','):'an empty array': arr.constructor: typeof arr 
    );
 
  // 不是数组则抛出异常
  if(!isArr){
    throw "arguments is not Array"; 
  }
 
  // 遍历是否在数组中
  for(var i=0,k=arr.length;i<k;i++){
    if(this==arr[i]){
      return true;  
    }
  }
 
  // 如果不在数组中就会返回false
  return false;
}
 
// 给字符串添加原型
String.prototype.in_array = in_array;
// 给数字类型添加原型
Number.prototype.in_array = in_array;
 
// 声明一个数组
var arr = Array('blue','red','110','120');
 
// 字符串测试
var str = 'red';
var isInArray = str.in_array(arr);
alert(isInArray); // true
 
// 数字测试
var num = 119;
var isInArray = num.in_array(arr);
alert(isInArray); // false

Wenn die Eingabe kein Array ist, wird eine Ausnahme ausgelöst

/**
 * JS判断一个值是否存在数组中
 */
 
// 定义一个判断函数
var in_array = function(arr){
  // 判断参数是不是数组
  var isArr = arr && console.log(
      typeof arr==='object' &#63; arr.constructor===Array &#63; arr.length &#63; arr.length===1 &#63; arr[0]:arr.join(','):'an empty array': arr.constructor: typeof arr 
    );
 
  // 不是数组则抛出异常
  if(!isArr){
    throw "arguments is not Array"; 
  }
 
  // 遍历是否在数组中
  for(var i=0,k=arr.length;i<k;i++){
    if(this==arr[i]){
      return true;  
    }
  }
 
  // 如果不在数组中就会返回false
  return false;
}
 
// 给字符串添加原型
String.prototype.in_array = in_array;
// 给数字类型添加原型
Number.prototype.in_array = in_array;
 
// 声明一个数组
var arr = null;
 
// 字符串测试
var str = 'red';
var isInArray = str.in_array(arr);
alert(isInArray); // uncaught exception: arguments is not Array

Fehler direkt melden:

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn