JavaScript基础——伪数组转真数组

一、什么是伪数组

伪数组:拥有数组的索引和长度,能够进行遍历,但是不能使用数组的原型的方法

下面是伪数组和真数组的区别
1. 真数组:

	var a = [1,2,3,4,5];
	console.log(a);//输出结果见下图

在这里插入图片描述
1. 伪数组:

<body>
		<div>1</div>
		<div>2</div>
		<div>3</div>
		<div>4</div>
		<div>5</div>
		<div>6</div>
		<script>
			var divobj = document.querySelectorAll('div')
			console.log(divobj);//输出结果见下图
		</script>
</body>

在这里插入图片描述
可以从中看出伪数组的原型不是Array构造函数,所以没法使用数组的方法

二、伪数组转真数组

1. 遍历伪数组,将伪数组中的元素赋值给空的真数组:

<body>
   	<div>1</div>
   	<div>2</div>
   	<div>3</div>
   	<div>4</div>
   	<div>5</div>
   	<div>6</div>
   	<script>
   		var divobj = document.querySelectorAll('div')
   		var arrobj = [];//定义一个空的数组
   		divobj.forEach((val,index)=>{
   			a.push(val);//遍历伪数组中的元素,添加到真数组中
   		})
   		 console.log(arrobj)
   		
   	</script>
</body>

2. 使用ES6提供的方法,Array.from()

<body>
		<div>1</div>
		<div>2</div>
		<div>3</div>
		<div>4</div>
		<div>5</div>
		<div>6</div>
		<script>
			var divobj = document.querySelectorAll('div')
			var arrobj = Array.from(divobj)
			console.log(arrobj)
		</script>
</body>

3. 有些数组方法的返回值还是数组,可以利用这些方法
比如:slice方法等

<body>
		<div>1</div>
		<div>2</div>
		<div>3</div>
		<div>4</div>
		<div>5</div>
		<div>6</div>
		<script>
			var divobj = document.querySelectorAll('div')
			var arrobj = Array.prototype.slice.call(divobj)
			console.log(arrobj)
		</script>
	</body>
数组有slice方法,但是伪数组没有,可以通过Array.prototype找到slice这个方法,这个方法中的this原本是指向new出来的实例的,现在将this通过call方法改为指向伪数组divobj,并截取divobj中的元素,使用slice会返回数组,将数组保存在arrobj中,就可以把divobj伪数组转为arrobj真数组

以上内容是对伪数组转真数组的一些理解,如果文章中对知识点的理解有片面或者错误的地方,欢迎批评指正

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值