Javascript数组操作

Javascript数组操作,javascript,arrays,Javascript,Arrays,var arr=['test','hello'] 是否有javascript本机调用来获取数组中某个值的索引(“hello”) arr.indexOf("hello"); 并非所有浏览器都支持indexOf方法(它是在JavaScript 1.6中添加的),但您可以使用以下代码使其在不支持的浏览器中工作(来自的代码): if(!Array.prototype.indexOf) { Array.prototype.indexOf=函数(elt/*,from*/) { var len=this.l

var arr=['test','hello']

是否有javascript本机调用来获取数组中某个值的索引(“hello”)

arr.indexOf("hello");
并非所有浏览器都支持
indexOf
方法(它是在JavaScript 1.6中添加的),但您可以使用以下代码使其在不支持的浏览器中工作(来自的代码):

if(!Array.prototype.indexOf)
{
Array.prototype.indexOf=函数(elt/*,from*/)
{
var len=this.length>>>0;
var from=Number(参数[1])| | 0;
from=(from<0)
?数学单元(来自)
:数学。地板(从);
如果(从<0开始)
from+=len;
for(;from
并非所有浏览器都支持
indexOf
方法(它是在JavaScript 1.6中添加的),但您可以使用以下代码使其在不支持的浏览器中工作(来自的代码):

if(!Array.prototype.indexOf)
{
Array.prototype.indexOf=函数(elt/*,from*/)
{
var len=this.length>>>0;
var from=Number(参数[1])| | 0;
from=(from<0)
?数学单元(来自)
:数学。地板(从);
如果(从<0开始)
from+=len;
for(;from
在javascript 1.6+中,您可以使用:

在早期的版本中,您只需要自己在阵列中循环

有趣的是,Chrome中的
警报([].indexOf)
为您提供了以下实现:

function indexOf(element, index) {
  var length = this.length;
  if (index == null) {
    index = 0;
  } else {
    index = (_IsSmi(IS_VAR(index)) ? index : ToInteger(index));
    if (index < 0) index = length + index;
    if (index < 0) index = 0;
  }
  for (var i = index; i < length; i++) {
    var current = this[i];
    if (!(typeof(current) === 'undefined') || i in this) {
      if (current === element) return i;
    }
  }
  return -1;
}
函数indexOf(元素,索引){
var length=这个.length;
如果(索引==null){
指数=0;
}否则{
指数=(_IsSmi(IS_VAR(index))?指数:ToInteger(index));
如果(指数<0)指数=长度+指数;
如果(指数<0)指数=0;
}
for(var i=索引;i<长度;i++){
无功电流=此[i];
if(!(typeof(current)=='undefined')| | i在此){
如果(当前===元素)返回i;
}
}
返回-1;
}

不要问我IsSmi(IS_VAR(index))做了什么…

在javascript 1.6+中,您可以使用:

arr.indexOf('hello');
在早期的版本中,您只需要自己在阵列中循环

有趣的是,Chrome中的
警报([].indexOf)
为您提供了以下实现:

function indexOf(element, index) {
  var length = this.length;
  if (index == null) {
    index = 0;
  } else {
    index = (_IsSmi(IS_VAR(index)) ? index : ToInteger(index));
    if (index < 0) index = length + index;
    if (index < 0) index = 0;
  }
  for (var i = index; i < length; i++) {
    var current = this[i];
    if (!(typeof(current) === 'undefined') || i in this) {
      if (current === element) return i;
    }
  }
  return -1;
}
函数indexOf(元素,索引){
var length=这个.length;
如果(索引==null){
指数=0;
}否则{
指数=(_IsSmi(IS_VAR(index))?指数:ToInteger(index));
如果(指数<0)指数=长度+指数;
如果(指数<0)指数=0;
}
for(var i=索引;i<长度;i++){
无功电流=此[i];
if(!(typeof(current)=='undefined')| | i在此){
如果(当前===元素)返回i;
}
}
返回-1;
}
不要问我IsSmi(IS VAR(index))
做了什么

arr.indexOf('hello');
不过,我不知道它是否能在IE上运行(它肯定能在Firefox和Webkit上运行)

:-D

不过,我不知道它是否能在IE上运行(它肯定能在Firefox和Webkit上运行)


:-D

在哪里可以看到我的javascript版本?最好的办法就是看看它是否受支持-if(typeof[].indexOf=='undefined'){你没有它}它受支持,但仍然不知道javascript版本:(您需要检查浏览器的版本,并查看它的实际实现。绝对值得+1在何处查看我的javascript版本?最好的方法是查看它是否受支持-if(typeof[].indexOf='undefined'){您没有它}它受支持,但仍然不知道javascript版本:(你需要检查你的浏览器版本,并查找它的实际实现。绝对值得+1我真的不知道为什么我会被否决……我的答案与其他答案没有太大区别(肯定没有错)。???我真的不知道为什么我会被否决……我的答案与其他答案没有太大区别(肯定没有错)???