栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在JavaScript中将“参数”对象转换为数组?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在JavaScript中将“参数”对象转换为数组?

ES6使用剩余参数

如果能够使用ES6,则可以使用:

休息参数

function sortArgs(...args) {  return args.sort(function (a, b) { return a - b; });}document.body.innerHTML = sortArgs(12, 4, 6, 8).toString();

rest参数语法允许我们将不确定数量的参数表示为数组。

ES6使用Array.from()

使用 Array.from

function sortArgs() {  return Array.from(arguments).sort(function (a, b) { return a - b; });}document.body.innerHTML = sortArgs(12, 4, 6, 8).toString();

Array.from
只需将类似Array或Iterable的对象转换为Array实例。



ES5

实际上,你可以只使用

Array
slice
一个参数对象的功能,这将其转换成一个标准的Javascript数组。您只需要通过Array的原型手动引用它即可:

function sortArgs() {    var args = Array.prototype.slice.call(arguments);    return args.sort();}

为什么这样做?好吧,这是ECMAscript 5文档本身的摘录:

注意 :该

slice
函数是有意通用的;它不需要此值是Array对象。因此,可以将其转移到其他类型的对象中作为一种方法。该
slice
功能是否可以成功应用于主机对象取决于实现。

因此,

slice
可以在任何具有
length
属性的东西上正常工作
arguments


如果

Array.prototype.slice
对您来说太麻烦了,您可以使用数组文字来略微缩写:

var args = [].slice.call(arguments);

但是,我倾向于认为以前的版本更为明确,因此我宁愿选择它。滥用数组字面量表示法会让人觉得很棘手,而且看起来很奇怪。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/483924.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号