В вопросе " Итерация списка как пары (текущий, следующий)" в Python OP заинтересован в итерации списка Python как серии current, next
пар. У меня та же проблема, но я хотел бы сделать это в JavaScript самым чистым способом, возможно, с использованием lodash.
Это легко сделать с помощью простого цикла for
, но это не очень элегантно.
for (var i = 0; i < arr.length - 1; i++) {
var currentElement = arr[i];
var nextElement = arr[i + 1];
}
Лодаш почти может сделать это:
_.forEach(_.zip(arr, _.rest(arr)), function(tuple) {
var currentElement = tuple[0];
var nextElement = tuple[1];
})
Тонкая проблема с этим в том, что на последней итерации nextElement
будет undefined
.
Конечно, идеальным решением было бы просто быть pairwise
функция lodash, что только петельные, насколько это необходимо.
_.pairwise(arr, function(current, next) {
// do stuff
});
Существуют ли какие-либо библиотеки, которые уже делают это? Или есть другой хороший способ сделать попарно итерацию в JavaScript, который я не пробовал?
Пояснение: если arr = [1, 2, 3, 4]
, то моя pairwise
функция будет повторяться следующим образом: [1, 2]
, [2, 3]
, [3, 4]
, а не [1, 2]
, [3, 4]
. Это то, о чем спрашивал ОП в исходном вопросе для Python.