Blogger Information
Blog 36
fans 1
comment 0
visits 26410
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
自定义类数组与纯数组的区别 dom元素的API使用场景 获取form表单元素与控件 dom元素的遍历与常用API
早晨
Original
464 people have browsed it

类数组定义

1.任何可迭代的结构,或者拥有length属性,其他属性(索引)为非负整数;
2.不具有数组所有方法;
3.元素属性名必须是数值或者可转换为数值的字符。

类数组和纯数组的区别与联系
相同点:
1.都可用下标索引访问每个元素
2.都有length属性
不同点:
1.数组对象类型为Array,遍历数组可以用for...in....和for循环。
2.类数组对象类型为Object,遍历类数组只能用for循环

类数组转换为纯数组

因为类数组不具有数组所具有的API,所以需要 将类数组转换为纯数组

Array.prototype.slice.call(arguments)

该方法是将arguments对象转换为纯数组的写法。

  1. function list(){
  2. return Array.prototype.slice.call(arguments);
  3. }
  4. let li=list(1,2,3,4,5);
  5. console.log(li);

Array.from()

该方法ES6新增的方法,它可以将类数组对象和可遍历对象转为纯数组;

  1. console.log(Array.from('star'));

Array.of()

该方法也是ES6新增的Array构造函数,用于将参数中所有值作为元素形成纯数组;

  1. console.log(Array.of(1,2,3,4,5));

扩展运算符

扩展运算符(...)用于取出参数对象中的所有可遍历属性,拷贝到当前对象之中,这里参数对象是个纯数组,纯数组里面的所有对象都是基础数据类型,将所有基础数据类型重新拷贝到新的纯数组中。

  1. let arr=[1,2];
  2. arr1=[..arr];
  3. console.log(arr1);

遍历类数组

类数组本身虽然不是纯数组,但是有Interator接口,所以可以遍历。

  1. <div></div>
  2. <div></div>
  3. <div></div>
  4. <script>
  5. let list = document.querySelectorAll('div');
  6. let divArr=[];
  7. for (let i of arr1){
  8. divArr.push(item);
  9. }
  10. </script>

页面有三个divlist是一个nodeList,即元素集合,并非纯数组,可以用let of 遍历。然后依次放入一个空数组。这样divArr就是div元素集合的纯数组。

Correcting teacher:PHPzPHPz

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!