在Javascript中查找元素本身内的数组元素位置

时间:2010-12-07 11:07:04

标签: javascript arrays

如果我们能够访问元素本身,那么在数组中找到元素位置的最有效方法是什么?

var arr = [];
for (var i = 0; i < 10; i++) {
    arr[i] = {test: Math.floor(Math.random() * 101)}
}
var test = arr[Math.floor(Math.random() * 11)];

现在我如何获得test引用的元素的位置?

2 个答案:

答案 0 :(得分:1)

我只是在这里生成它时存储位置,如下所示:

var arr = [];
for (var i = 0; i < 10; i++) {
    arr[i] = {test: Math.floor(Math.random() * 101)}
}
var index = Math.floor(Math.random() * 11);
var test = arr[index];
//index is the position

答案 1 :(得分:0)

我认为随机生成只是一个例子。

现在,如果您对某个元素有引用并希望查找其索引,则可以使用Array.indexOf方法。这是一项新功能,因此并非所有浏览器都支持本机,但它很容易实现。裸骨解决方案看起来像:

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function (searchElement) {
    var len = this.length >>> 0;
    for (var i = 0; i < len; i++) {
      if (searchElement === this[i]) return i;
    }
    return -1;
  };
}

现在您可以将其用作:

index = array.indexOf(elem)    // index from an element reference
examp = [5,8,12,5].indexOf(12) // 2