Используйте Array.from()
, который принимает объект типа типа (такой как arguments
) в качестве аргумента и преобразует его в массив:
(function() {
console.log(Array.from(arguments));
}(1, 2, 3));
Обратите внимание, что он не работает в некоторых старых браузерах, таких как IE 11, поэтому, если вы хотите поддерживать эти браузеры, вы должны использовать Babel .
Использование:
function sortArguments() {
return arguments.length === 1 ? [arguments[0]] :
Array.apply(null, arguments).sort();
}
Array(arg1, arg2, ...)
возвращает [arg1, arg2, ...]
Array(str1)
возвращается [str1]
Array(num1)
возвращает массив, который имеет num1
элементы
Вы должны проверить количество аргументов!
Array.slice
версия (медленнее):
function sortArguments() {
return Array.prototype.slice.call(arguments).sort();
}
Array.push
версия (медленнее , быстрее, чем срез):
function sortArguments() {
var args = [];
Array.prototype.push.apply(args, arguments);
return args.sort();
}
Переместить версию (медленнее, но малый размер быстрее):
function sortArguments() {
var args = [];
for (var i = 0; i < arguments.length; ++i)
args[i] = arguments[i];
return args.sort();
}
Array.concat
версия (самая медленная):
function sortArguments() {
return Array.prototype.concat.apply([], arguments).sort();
}