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);

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

目录
相关文章
|
3月前
|
自然语言处理 前端开发 JavaScript
🛠️ JavaScript数组操作指南:20个精通必备技巧🚀
本文详细介绍了 JavaScript 中的 20 个高效数组操作技巧,涵盖了从基本的添加、移除元素,到数组转换和去重等高级操作。强调了不可变性的重要性,提供了清晰的代码示例,帮助开发者编写更整洁和高效的代码。无论是新手还是经验丰富的开发者,这些技巧都将显著提升您的编码能力,使您在项目中更具竞争力。
51 2
|
3月前
|
JavaScript 前端开发 测试技术
JS都有哪些操作数组的方法
JS都有哪些操作数组的方法
44 3
|
3月前
|
JavaScript
js删除数组中已知下标的元素
js删除数组中已知下标的元素
57 4
|
3月前
|
缓存 JavaScript 前端开发
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
JavaScript中数组、对象等循环遍历的常用方法介绍(二)
54 1
|
3月前
|
JavaScript 前端开发 Java
【javaScript数组,函数】的基础知识点
【javaScript数组,函数】的基础知识点
34 5
|
3月前
|
JavaScript 前端开发 索引
探索JavaScript数组:基础
探索JavaScript数组:基础
22 3
|
3月前
|
JavaScript 前端开发 索引
JS 删除数组元素( 5种方法 )
JS 删除数组元素( 5种方法 )
84 1
|
3月前
|
JavaScript 前端开发
如何在JS中声明一个数组
如何在JS中声明一个数组
35 0
|
3月前
|
存储 JavaScript 前端开发
JavaScript Array(数组) 对象
JavaScript Array(数组) 对象
38 3
|
4月前
|
JavaScript 前端开发
js删除数组最后一个元素
js删除数组最后一个元素