/
eb
/
Surf
Обзор
Документация
Войти
/
eb
/
Surf
Код
Запросы
0
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
node_modules/es5-ext/array/#/flatten.js
40 строк
963 B
EvgeniyBudaev
Initial commit
17 фев 2020, 09:02
17 фев 2020, 09:02
bb6f06f
Код
Авторство
О чём код?
// Stack grow safe implementation "use strict"; var ensureValue = require("../../object/valid-value") , isArray = Array.isArray , objHasOwnProperty = Object.prototype.hasOwnProperty; module.exports = function () { var input = ensureValue(this), index = 0, remaining, remainingIndexes, length, i, result = []; // Jslint: ignore main: while (input) { length = input.length; for (i = index; i < length; ++i) { if (!objHasOwnProperty.call(input, i)) continue; if (isArray(input[i])) { if (i < length - 1) { // eslint-disable-next-line max-depth if (!remaining) { remaining = []; remainingIndexes = []; } remaining.push(input); remainingIndexes.push(i + 1); } input = input[i]; index = 0; continue main; } result.push(input[i]); } if (remaining) { input = remaining.pop(); index = remainingIndexes.pop(); } else { input = null; } } return result; };