Объект arguments
в JavaScript является нечетным бородавком - он действует как массив в большинстве ситуаций, но на самом деле он не является объектом массива. Поскольку действительно что-то еще полностью, у него нет полезных функций из Array.prototype
, например forEach
, sort
, filter
и map
.
Тривиально легко построить новый массив из объекта arguments с простым циклом for. Например, эта функция сортирует свои аргументы:
function sortArgs() {
var args = [];
for (var i = 0; i < arguments.length; i++)
args[i] = arguments[i];
return args.sort();
}
Однако это довольно жалкая вещь, которую нужно просто сделать, чтобы получить доступ к чрезвычайно полезным функциям массива JavaScript. Есть ли встроенный способ сделать это, используя стандартную библиотеку?