最详细的JavaScript高级教程(九)Array

本文详细介绍了JavaScript中的Array类型,包括创建、使用、检测、输出、栈和队列操作、排序、拼接、切片、删除与插入、查找方法、迭代方法以及归并函数。还特别讨论了如何检测对象是否为数组,并介绍了ES6的解构赋值在数组操作中的应用。
摘要由CSDN通过智能技术生成

Array类型是js中常用的引用类型。js中的Array最大的特点就是:数组可以容纳多种类型的元素,数组在定义的时候不用指明元素类型,一个数组中可以混杂多种数据类型。

创建数组

// 使用Array对象初始化
// 需要预先知道元素数量
var colors = new Array(10);
// 传入数字,则使用数字个数初始化数组
// 传入其他数据类型,则创建只有一个元素的数组
var colors = new Array('red');
// 使用多个元素初始化Array
var colors = new Array('red', 'blue', 'green');
// 省略new
var colors = Array(34);


// 使用字面量
var colors = ['red'];
// 创建空数组
var colors = [];
// 使用下面的写法在不同的浏览器中运行结果不同,不要使用
var colors = ['red'];
var colors = [, ,];

使用数组

数组可以自动扩充,当设置了数组之外的索引的值的时候,数组被自动扩充到需要的大小

var colors = new Array('red', 'blue', 'green');
console.log(colors.length); // 3
console.log(colors[5]); // 输出undefined
console.log(colors.length); // 3
colors[5] = '6';
console.log(colors.length); // 6

数组的length不是只读的,所以可以用于删除项或者新增项,新增的项都是undefined,数组的这个特性还有个很巧妙的用法就是用来添加新的项

// 裁切数组
var colors = new Array('red', 'blue', 'green');
colors.length = 2;
console.log(colors[2]); // undefined
// 在数组后追加一项
colors[colors.length] = 'new';
colors[colors.length] = 'new2'; // 再新增一项

检测对象是不是数组

当我们检测一个对象是不是数组的时候很容易想到使用 instanceof 来判断。我们复习一下 instanceof 是判断一个对象的原型的,我们通过判断对象是不是继承自Array就可以判断出来。

但是,这只是理论上可行,由于网页的运行环境复杂,很容易就包含多个框架,而多个框架就有可能有多个Array的构造函数,如果两个框架之间传递参数,就有可能判断有误,认为这个对象并不是继承自自己框架内的Array,导致判断失误。

正确的做法是使用ES5提供的Array.isArray方法

var colors = new Array('red', 'blue', 'green');
console.log(Array.isArray(colors)); // true
console.log(Array.isArray('123'));  // false

数组的输出

数组默认tostring是以逗号分隔输出的。

var colors = new Array('red
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值