将字符串与数组中的值匹配,并在JavaScript中返回该值的id

时间:2009-09-07 21:17:27

标签: javascript arrays

假设我在JavaScript中有以下数组:

var skins = new Array('Light', 'Medium', 'Dark');

我将如何检查该数组中的ID(0,1或2)与我提供的字符串的匹配值。例如,如果我查看一个'Medium'字符串,我应该返回ID 1。

2 个答案:

答案 0 :(得分:2)

您可以使用Array.indexOf

var index = skins.indexOf('Medium'); // 1

此功能已在JavaScript 1.6中引入,但您可以将其包含在与旧浏览器的兼容性中。

以下是Firefox使用的算法:

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function(elt /*, from*/) {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++) {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

答案 1 :(得分:0)

Array.prototype.lastIndex= function(what){
 var L= this.length;
 while(L){
  if(this[--L]=== what) return L;
 }
 return -1;
}

Array.prototype.firstIndex= function(what){
 var i=0, L= this.length;
 while(i<L){
  if(this[i]=== what) return i;
  ++i;
 }
 return -1;
}