JavaScript类型化数组对象与数组的转换

JavaScript类型化数组是一种类似数组的对象,并提供了一种用于访问原始二进制数据的机制。 正如你可能已经知道,Array 存储的对象能动态增多和减少,并且可以存储任何JavaScript值。JavaScript引擎会做一些内部优化,以便对数组的操作可以很快。然而,随着Web应用程序变得越来越强大,尤其一些新增加的功能例如:音频视频编辑,访问WebSockets的原始数据等,很明显有些时候如果使用JavaScript代码可以快速方便地通过类型化数组来操作原始的二进制数据将会非常有帮助。
但是,不要把类型化数组与正常数组混淆,因为在类型数组上调用 Array.isArray() 会返回false。此外,并不是所有可用于正常数组的方法都能被类型化数组所支持(如 push 和 pop)。

类型化数组

创建类数组对象

最常见的类数组对象是function函数中的属性arguments

function create(){
	console.log(arguments);
}
create();

打印结果:[Arguments] {}

类型化数组转化为数组

方法一
function create(){
	console.log([...arguments]);
}
create();

打印结果:[] 表示已经将类数组转化为数组

方法二
function create(){
	console.log(Array.from(arguments));
}
create();

打印结果:[] 表示已经将类数组转化为数组

方法三
function create(){
	console.log(Array.prototype.slice.call(arguments));
}
create();

打印结果:[] 表示已经将类数组转化为数组

注意

没有迭代器的不能转化为数组
var obj = {
	0:'a',
	1:'b',
	length:2
};
console.log([...obj]);

输出结果:TypeError: obj is not iterable 转换失败,必须有迭代器

创建带有迭代器的类数组
var obj = {
	0:'a',
	1:'b',
	length:2,
	[Symbol.iterator]:Array.prototype[Symbol.iterator]
};
console.log([...obj]);

输出结果:[ ‘a’, ‘b’ ] 转换成功

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值