博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript面向对象编程——Array类型
阅读量:5982 次
发布时间:2019-06-20

本文共 4295 字,大约阅读时间需要 14 分钟。

概述

一维数组

数组是一个有序的数据集合,可以通过数组名称和索引进行访问。JavaScript中并没有明确的数组数据类型。

二维数组

数组是可以嵌套的,这就意味着一个数组可以作为一个袁旭被包含在另一个数组里面。利用JavaScript这个特点,创建二维数组,即数组的数组。

数组的常见方法

检测数组

如何确定当前是一个数组,JavaScrpt提供了几种方式;

1.typeof无法检测数组对象:typeof[]返回object
2.instanceof:[]instanceof Array返回true/false
3.Object.prototype.toString.call([]):返回[objcet Array]
4.Array.prototype.isPrototypeOf([]):返回true/false
5.ES5中新方法:Array.isArray([]):返回true/false

var arr = [1,2,3,4,5];console.log(arr instanceof Array);// true/*    Object.prototype.toString.call()方法    * 作用 - 用于判断当前对象的(数据)类型    * 结果 - [object Array]    * 特点 - 可以准确判断出当前变量的类型 */console.log(Object.prototype.toString.call(arr));console.log(typeof null);// object// console.log(null instanceof Null);// 报错console.log(null instanceof Object);// falseconsole.log(Object.prototype.toString.call(null));// Object.prototype.isPrototypeOf()方法 - 判断指定类型是否出现在当前对象的原型链中console.log(Array.prototype.isPrototypeOf(arr));// trueconsole.log(Array.isArray(arr));// true

转换方法

JavaScript中提供了两种方法;

1.toString():把数组转换为字符串,并且返回结果。
2.valueOf():返回数组对象的原始值。

var arr = [1,2,3,4,5];/*    利用toString()方法将数组转换为字符串    * 结果 - 多个数组元素被逗号进行分隔组成的字符串 */console.log(arr.toString());// 1,2,3,4,5console.log(arr.valueOf());// [ 1, 2, 3, 4, 5 ]var obj = {    name : '张无忌'}console.log(obj.valueOf());// true

排序方法

JavaScript提供了两种方法,用于数组的排序。

1.reverse():反转数组的元素顺序。
2.sort():对数组的元素进行排序。
要注意reverse()和sort()方法的返回值是经过排序之后的数组。

var arr = [3,1,2,3,4,5,10];// console.log(arr.reverse());// [ 5, 4, 3, 2, 1 ]/*    Array.sort()方法    * 作用 - 对数组中的元素进行排序    * 注意      * 并不是从小到达的排序      * 影响原有数组元素的顺序 */// var result = arr.sort();// console.log(result);// console.log(arr);var result = arr.sort(function(a,b){    /*if (a < b) {        return 1;    }*/    if (a > b) {        return 1;    }})console.log(arr);console.log(result);

连接方法

连接方法一般用于多个数组之间的连接操作,在JavaScript中提供了:

concat()方法,连接两个或更多的数组,并返回结果。

var arr = [1,2,3,4,5];console.log(arr.concat(6));console.log(arr.concat([7,8,9]));

操作方法

操作方法就是用于数组的删除、插入和替换。在JavaScript中提供了两种方法。

1.slice():选取数组的一部分,并返回一个新数组。
2.splice():从数组中你那个添加或删除元素。

var arr = [1,2,3,4,5];/*    splice(start, deleteCount)方法    * 作用 - 用于删除当前数组中指定位置指定个数的元素    * 参数      * start - 表示删除的开始位置      * deleteCount - 表示删除的个数    * 返回值 - 将删除的元素组成的新数组进行返回 */// var result = arr.splice(0, 5);// console.log(result);// console.log(arr);/*    splice(start, deleteCount, item1, item2, ...)方法    * 作用 - 向指定数组的指定位置添加元素    * 参数      * start - 表示删除的开始位置      * deleteCount - 表示删除的个数      * item1, item2, ... - 表示向数组添加的元素    * 返回值 - 将删除的元素组成的新数组进行返回 */// var result = arr.splice(0, 0, 6,7,8);// console.log(result);// console.log(arr);// var result = arr.splice(0, 3, 6,7,8);// console.log(result);// console.log(arr);/*    slice()方法    * 作用 - 截取指定数组中的元素    * 参数      * begin - 表示开始截取的位置(从 0 开始)      * end - 表示结束截取的位置(截取最后一个位置的下一个位置)    * 返回值 - 返回截取的元素组成的新数组 */var result = arr.slice(2,3);console.log(result);

位置方法

位置方法用于获取数组中指定元素的索引值,在JavaScript中提供了两种方法。

1.indexOf()搜索数组中的元素,并返回他所在的位置。
2.lastlndexOf()返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索。

var arr = ['张无忌','周芷若','张无忌','赵敏','小昭'];/*    indexOf()和lastIndexOf()方法    * 用于检索数组中是否包含指定元素内容 -> 返回元素所在的位置      * indexOf() - 从左至右的顺序进行检索      * lastIndexOf() - 从右至左的顺序进行检索    * 返回第一个匹配元素的位置信息    * 如果检索的元素并不在指定的数组中时 -> 结果为 -1 */console.log(arr.indexOf('张无忌'));// 0console.log(arr.lastIndexOf('张无忌'));// 2console.log(arr.indexOf('灭绝师太'));//

迭代与归并方法

迭代方法

JavaScript提供了如下方法,用于数组的迭代遍历:

1.every():判断数组中每个元素是否都满足fun函数定义的条件。只有满足才返回true,否则返回false。
2.filter():专门用于筛选出数组中符合fun函数判断条件的元素组成的心数组。
3.forEach():专门用于对原数组中每个元素执行相同的fun函数对象规定的操作。
4.map():专门用于基于袁术组创建新数组对象。
5.some():判断数组中是否包含满足fun含糊是定义的条件的元素,只要包含就返回true,否则返回false。

var arr = ['张无忌','周芷若','赵敏','小昭'];/*    Array.prototype.forEach()方法    * 作用 - 用于遍历指定数组    * 参数      * callback - 表示回调函数        * currentValue - 表示遍历数组得到每个元素        * index - 表示遍历数组得到每个元素对应的索引值        * array - 表示遍历的数组    * */arr.forEach(function(currentValue, index, array){    console.log(array);});/* 为Array类型新增forEach()方法Object.defineProperty(Array.prototype, 'forEach', {    value : function(callback){        // 假设得到当前的数组        for (var i=0; i

归并方法

归并方法用于数组的迭代归并,JavaScript中提供了两种方式

1.reduce()将数组从左向右迭代。
2.reduceRight()将数组从右向左迭代.

var arr = [1,2,3,4,5];arr.reduce(function(accumulator, currentValue, currentIndex, array){    console.log(accumulator)    return accumulator + currentValue;});

转载地址:http://tmrox.baihongyu.com/

你可能感兴趣的文章
代码重构(五):继承关系重构规则
查看>>
Windows App开发之集合控件与数据绑定
查看>>
中大型网站技术架构演变过程
查看>>
ARTS训练第三周
查看>>
vue中v-for循环如何将变量带入class的属性名中
查看>>
phpstorm xdebug remote配置
查看>>
引用与指针的区别
查看>>
pygtk笔记--2.1:布局容器,VBox、Hbox、Alignment
查看>>
dtree.js树的使用
查看>>
Springboot2.1.3 + redis 实现 cache序列化乱码问题
查看>>
线程什么时候需要同步,什么时候不需要同步?
查看>>
Struts2 自定义拦截器(方法拦截器)
查看>>
Linux服务器的那些性能参数指标
查看>>
BZOJ 2302: [HAOI2011]Problem c [DP 组合计数]
查看>>
c++ 11开始语言本身和标准库支持并发编程
查看>>
.NET Core 之 MSBuild 介绍
查看>>
iOS:即时通讯之<了解篇 SocKet>
查看>>
《JavaScript高级程序设计》读书笔记(十):本地对象Date
查看>>
linux中fork()函数详解
查看>>
从1G到5G,46年屏幕变迁下,富士康、苹果、三星、华为的浴火重生路 ...
查看>>