我有一系列项目,例如,像这样:
[el, el, *el*, TARGET, TARGET, TARGET, *el*, el, el, el]
我找不到相对于TARGET序列获取前一个和后续元素的方法,即*el*
。序列中的TARGET元素数量可能不同,但序列始终具体,即TARGET, el, TARGET
不会发生。我也可以访问lodash方法,但我找不到正确的方法来实现这一点。
答案 0 :(得分:2)
您可以使用indexOf
和lastIndexOf
:
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
}