我知道这个问题有点奇怪,但这是一个例子:
这是数组:
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)的事情,但这不起作用,因为它只搜索精确匹配。
我有什么可以做的吗?
谢谢!
答案 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');
答案 1 :(得分:2)
只是迭代它:
for (i = 0; mesreponses[i]; i++) {
if (mesreponses[i].indexOf(s_attrs) >= 0) return i;
}
return -1;