Я ищу простой метод для перебора массива и получения результата, как показано ниже... Лучше, если кто-нибудь покажет мне, как это сделать в ES2015.
var numbers = ['one', 'two', 'three'];
/* Expected result */
/*
0: ['one', 'two', 'three'],
1: ['one', 'two'],
2: ['one']
*/



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать slice для получения желаемого вывода вместо использования pop, поскольку он изменит ваш массив numbers
var numbers = ['one', 'two', 'three'];
var array = [];
var arrayLength = numbers.length;
for (var i = 0; i < arrayLength; i++) {
array[i] = numbers.slice(0, arrayLength - i);
}
console.info(array);или вы просто использовали бы карту со срезом
var numbers = ['one', 'two', 'three']
var array = numbers.map(function (_, i) {
return numbers.slice(0, numbers.length - i);
});
console.info(array);Вы можете отобразить нарезанный массив.
var numbers = ['one', 'two', 'three'],
result = numbers.map(function (_, i, a) {
return a.slice(0, a.length - i);
});
console.info(result);Вы можете использовать функцию генератора и получить массив, где при каждом выходе вы удаляете последний элемент:
const numbers = ['one', 'two', 'three'],
res = [...(function*(arr) {
yield arr;
while(arr.length > 1) yield (arr = arr.slice(0, -1));
})(numbers)];
console.info(res);
Вы захотите клонировать массив для каждого цикла,
var clone = myArray.slice(0);