Javascript / jQuery从元素位置/索引获取数组元素索引

时间:2014-02-26 09:48:06

标签: javascript jquery

我知道这个问题有点奇怪,但这是一个例子:

这是数组:

mesreponses = ["10700#NB - Purple#1#0", "10699#NB - Nude#1#0", "10698#NB - Navy#1#0", "10697#NB - Marple#1#0", "10696#NB - Grey-Melange#1#0", "10695#NB - Brown-Melange#1#1", "10701#3-6M - Brown-Melange#1#0", "10706#3-6M - Purple#1#0", "10705#3-6M - Nude#1#0", "10704#3-6M - Navy#1#0", "10703#3-6M - Marple#1#0", "10702#3-6M - Grey-Melange#1#0", "10707#9-12M - Brown-Melange#1#0", "10712#9-12M - Purple#1#0", "10711#9-12M - Nude#1#0", "10710#9-12M - Navy#1#0", "10709#9-12M - Marple#1#0", "10708#9-12M - Grey-Melange#1#0", "10713#18-24M - Brown-Melange#1#0", "10718#18-24M - Purple#1#0", "10717#18-24M - Nude#1#0", "10716#18-24M - Navy#1#0", "10715#18-24M - Marple#1#0", "10714#18-24M - Grey-Melange#1#0"]

这就是我要做的事情:获取任何想要的元素的数组位置,例如s_attrs =“NB - Purple” - 它应该返回0,当搜索“NB - Gray-Melange”它应该返回1依此类推

到目前为止我设法做到了:获取数组中元素的INDEX,即

console.log(String(mesreponses).indexOf(s_attrs));

所以我得到了INDEX(即第一个是6,第二个28等) - 我可以使用索引来获取Array的ELEMENT索引吗?即mesreponses [0],mesreponses [1],mesreponses [2]等。

或者我只是想做类似于jQuery.inArray(s_attrs,mareponse)的事情,但这不起作用,因为它只搜索精确匹配。

我有什么可以做的吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

这只需要在数组上进行简单的循环:

function indexOfPartial(array, value) {
    for (var i = 0; i < array.length; i++) {
        if (array[i].indexOf(value) >= 0) {
            return i;
        }
    }
    return -1;
}

你可以称之为:

var index = indexOfPartial(mesreponses, 'NB - Nude');

http://jsfiddle.net/r57GN/

答案 1 :(得分:2)

只是迭代它:

for (i = 0; mesreponses[i]; i++) {
  if (mesreponses[i].indexOf(s_attrs) >= 0) return i;
}
return -1;