在JS数组中查找特定元素

时间:2016-03-18 17:39:33

标签: javascript arrays

我有一系列项目,例如,像这样:

[el, el, *el*, TARGET, TARGET, TARGET, *el*, el, el, el]

我找不到相对于TARGET序列获取前一个和后续元素的方法,即*el*。序列中的TARGET元素数量可能不同,但序列始终具体,即TARGET, el, TARGET不会发生。我也可以访问lodash方法,但我找不到正确的方法来实现这一点。

2 个答案:

答案 0 :(得分:2)

您可以使用indexOflastIndexOf

var arr = ['el', 'el', '*el*', 'TARGET', 'TARGET', 'TARGET', '*el*', 'el', 'el'];

var first = arr[arr.indexOf('TARGET') - 1];
var second = arr[arr.lastIndexOf('TARGET') + 1];

document.write(first + '<br/>');
document.write(second);

答案 1 :(得分:0)

var array = [1, 2, 1, 1, 3, "A", 3, 2, 1];

var position = array.indexOf("A"); // 5

(array[5] == "A")              // true
(array[position] == "A")       // true
(array[position - 1] == 3)     // true

for (var i = 0; i < position; i++) {
    console.log(i); // 1, 2, 1, 1, 3
}