繁体   English   中英

如何获取包含字符串的数组的索引?

[英]How do I get the index of an array where it contains a string?

var qs = ["color=green", "pet=dog", "fruit=apple]

我想吃水果。 尝试过:

for (var j=0; j<qs.length; j++) {qs[j].indexOf('fruit')}

返回0。

我希望它返回2,最后输入int他是数组吗? 如何找到我想要的数组值?

差不多了,您需要中断索引或创建一个新数组,然后将具有匹配索引的数组推入该数组

var arr = [];

for (var j=0; j<qs.length; j++) 
{
    if(qs[j].indexOf('fruit')!==-1){
        arr.push(j);
    }
}
//print all the indexes that contain fruit
for(var i in arr)
console.log(arr[i]);

如果您只想打破一个索引

var matchingIdx=-1;
for (var j=0; j<qs.length; j++) 
{
    if(qs[j].indexOf('fruit')!==-1){
       matchingIdx = j;
       break;
    }
}

如果您想对此进行概括,可以将其放入函数中

function gettingMatchingIndexes(qs, target) {
    var arr = [];
    for (var j=0; j<qs.length; j++) 
    {
        if(qs[j].indexOf(target)!==-1){
            arr.push(j);
        }
    }
    return arr;
}

如果只希望第一个元素的索引在数组中包含“水果”,则只需返回j

function findFirstFruitIndex() {
 for (var j = 0; j < qs.length; j++) {
  if (qs[j].indexOf('fruit') > -1) return j;
 }
}

qs[j].indexOf('fruit')返回'果实'的位置qs[j]代替的位置qs[j]qs (要)。

字符串中的任何位置:

 let qs = ["color=green", "pet=dog", "fruit=apple]"]; let res = qs.findIndex(e => e.includes('fruit')); console.log(res); 

按键上的完全匹配:

 let qs = ["color=green", "pet=dog", "fruit=apple]"]; let res = qs.findIndex(e => e.match(/^fruit=/)); console.log(res); 

请参阅Array.prototype.findIndex()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM