js 伪数组

简介: js 伪数组

伪数组的定义

类似数组一样,具有索引(下标)和length属性,但不具备数组方法(如push,shift,map等)的对象,被称为伪数组(或类数组)。

伪数组的范例

let fakeArray = {
    length: 3,
    "0": "first",
    "1": "second",
    "2": "third"
};
// 以下形式的对象,也是伪数组
var obj3 = { length: 0 };
var obj4 = { 0: '888', length: 1 };
var obj5 = { 99: 'abc', length: 100 }

伪数组可以使用for进行遍历

for (var i = 0; i < fakeArray.length; i++) {
    console.log(fakeArray[i]);
}

伪数组与数组进行对比

伪数组

fakeArray instanceof Array === false;
Object.prototype.toString.call(fakeArray) === "[object Object]";
Array.isArray(fakeArray) === false;

数组

let arr = [1,2,3,4,6];
arr instanceof Array === true;
Object.prototype.toString.call(arr) === "[object Array]"
Array.isArray(arr) === true;

常见的伪数组

  • 函数的参数列表 arguments
  • DOM 对象列表(如通过 document.getElementsByTags 得到的列表,jQuery中的$("div"))

判断是否为伪数组

// 使用lodash
_.isArrayLike([1, 2, 3]);
// => true
 
_.isArrayLike(document.body.children);
// => true
 
_.isArrayLike('abc');
// => true
 
_.isArrayLike(_.noop);
// => false

伪数组 => 真数组

// 伪数组 —— DOM对象列表
let fakeArr = document.getElementsByTagName('div');

方式一:【ES6】 Array.from() 【推荐】

let realArr = Array.from(fakeArr);

方式二:使用Array.prototype.slice.call()方法

let realArr = Array.prototype.slice.call(fakeArr);

方式三:声明一个空数组,通过遍历伪数组把它们添加到新的数组中

目录
打赏
0
1
1
0
63
分享
相关文章
JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
array.map()可以用来数据转换、创建派生数组、应用函数、链式调用、异步数据流处理、复杂API请求梳理、提供DOM操作、用来搜索和过滤等,比for好用太多了,主要是写法简单,并且非常直观,并且能提升代码的可读性,也就提升了Long Term代码的可维护性。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
JavaScript中通过array.filter()实现数组的数据筛选、数据清洗和链式调用,JS中数组过滤器的使用详解(附实际应用代码)
用array.filter()来实现数据筛选、数据清洗和链式调用,相对于for循环更加清晰,语义化强,能显著提升代码的可读性和可维护性。博客不应该只有代码和解决方案,重点应该在于给出解决方案的同时分享思维模式,只有思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
🛠️ JavaScript数组操作指南:20个精通必备技巧🚀
本文详细介绍了 JavaScript 中的 20 个高效数组操作技巧,涵盖了从基本的添加、移除元素,到数组转换和去重等高级操作。强调了不可变性的重要性,提供了清晰的代码示例,帮助开发者编写更整洁和高效的代码。无论是新手还是经验丰富的开发者,这些技巧都将显著提升您的编码能力,使您在项目中更具竞争力。
76 2
|
6月前
|
js删除数组中已知下标的元素
js删除数组中已知下标的元素
85 4
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
62 5
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
94 1
探索JavaScript数组:基础
探索JavaScript数组:基础
46 3
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
154 1
如何在JS中声明一个数组
如何在JS中声明一个数组
83 0