Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript中的值获取索引_Javascript_Arrays_Indexing - Fatal编程技术网

从JavaScript中的值获取索引

从JavaScript中的值获取索引,javascript,arrays,indexing,Javascript,Arrays,Indexing,是否有函数/方法从JavaScript中的值检索数组中某个项的索引 换句话说,我正在寻找Python.index()列表方法的JavaScript等价物: >>> ['stackoverflow','serverfault','meta','superuser'].index('meta') 2 轮子已经存在了还是我必须重新发明它?你可以这样做 var lookingFor = 'meta'; var arrayIndex; for (var i=0;i<array

是否有函数/方法从JavaScript中的值检索数组中某个项的索引

换句话说,我正在寻找Python.index()列表方法的JavaScript等价物:

>>> ['stackoverflow','serverfault','meta','superuser'].index('meta')
2
轮子已经存在了还是我必须重新发明它?

你可以这样做

var lookingFor = 'meta';

var arrayIndex;

for (var i=0;i<array.length;i++) {

    if (array[i] === lookingFor) {
        arrayIndex = i;
    };    

};
你可以

var lookingFor = 'meta';

var arrayIndex;

for (var i=0;i<array.length;i++) {

    if (array[i] === lookingFor) {
        arrayIndex = i;
    };    

};
Array.prototype.GetIndex=函数(值)
{
for(var i=0;i
希望这有帮助。

Array.prototype.GetIndex=function(value)
{
for(var i=0;i

希望这能有所帮助。

您的功能是indexOf

var array = new Array();
array[0] = "A";
array[1] = "B";
array[2] = "C";
array[3] = "D";

var index = array.indexOf("A");
编辑: 这是一个用于索引的javascript修复程序

[].indexOf || (Array.prototype.indexOf = function(v){ for(var i = this.length; i-- && this[i] !== v;); return i; }); [].indexOf | |(Array.prototype.indexOf=function(v){ 对于(var i=this.length;i--&this[i]!==v;); 返回i;
}); 你的函数是indexOf

var array = new Array();
array[0] = "A";
array[1] = "B";
array[2] = "C";
array[3] = "D";

var index = array.indexOf("A");
编辑: 这是一个用于索引的javascript修复程序

[].indexOf || (Array.prototype.indexOf = function(v){ for(var i = this.length; i-- && this[i] !== v;); return i; }); [].indexOf | |(Array.prototype.indexOf=function(v){ 对于(var i=this.length;i--&this[i]!==v;); 返回i;
}); 这类事情通常是通过口述来完成的,你能用它来代替吗。我不确定代码的其余部分如何依赖于此结构。否则,你就得自己动手了。

这类事情通常是用口述完成的,你能用它来代替吗。我不确定代码的其余部分如何依赖于此结构。否则,您几乎必须自己动手。

您正在寻找“indexOf”方法。它在Mozilla中可用,但在IE中不可用。但是,在IE中添加对它的支持是很容易的(假设您同意更改Array.prototype的想法——这就是您不想这样做的原因。)

以下是参考实施,摘自上页:

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;
  };
}
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”方法。它在Mozilla中可用,但在IE中不可用。但是,在IE中添加对它的支持是很容易的(假设您同意更改Array.prototype的想法——这就是您不想这样做的原因。)

以下是参考实施,摘自上页:

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;
  };
}
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修复程序,适用于IE中不支持的每种arrayNot类型,以及其他一些较旧的浏览器。您应该在存在索引的地方使用indexOf,并使用此处列出的功能之一作为回退。我不明白为什么我的答案为负值?您的实现看起来更像
lastIndexOf
。鉴于
indexOf
的语义要求您在数组中向前循环,而不是向后循环。+1到crescentfresh注释,它应该返回第一次出现的索引。这是一个针对数组的javascript修复程序,适用于IE不支持的每种类型的数组,以及其他一些较旧的浏览器。您应该在存在索引的地方使用indexOf,并使用此处列出的功能之一作为回退。我不明白为什么我的答案为负值?您的实现看起来更像
lastIndexOf
。鉴于
indexOf
的语义要求在数组中向前循环,而不是向后循环。+1对于crescentfresh注释,它应该返回第一次出现的索引。