学习JS笔记(第五章-数组)

数组概述##

创建数组##

字面量###

学习JS笔记(第五章-数组)_第1张图片

数组大小0~232-1,超过232-1则报错

学习JS笔记(第五章-数组)_第2张图片

用Array构造器创建数组###

一个参数表示数组长度,多个参数表示数组元素,红色new可以被省略

学习JS笔记(第五章-数组)_第3张图片

delete删除数组时,数组长度不变,但是被删除元素变为undefined

数组元素增删##

动态的,无需指定大小, 通过delete和直接把元素赋值为undefined之后,前者和后者的2 in arr的结果是不同的

学习JS笔记(第五章-数组)_第4张图片

数组迭代##

for循环for(i in arr),数组也是对象,有原型Arry.prototype

学习JS笔记(第五章-数组)_第5张图片
数组迭代

二维数组##

学习JS笔记(第五章-数组)_第6张图片
遍历二维数组

稀疏数组##

稀疏数组并不含有从0开始的连续索引。一般length属性值比实际元素个数要多。不连续的索引返回undefined遍历时,用in操作符或者判断数组元素是否为undefined来判断

学习JS笔记(第五章-数组)_第7张图片
稀疏数组

数组方法##

数组对象的原型Arry.prototype提供了大量的方法对数组进行操作

学习JS笔记(第五章-数组)_第8张图片
数组方法

join-将数组转为字符串###

使用join方法来构造重复的字符串

学习JS笔记(第五章-数组)_第9张图片
join方法的妙用

reverse-将数组逆序###

原数组被修改

reverse方法

sort-排序###

默认按照字母排序,原数组被修改

默认将数字转为字符串之后按照字母顺序排序

学习JS笔记(第五章-数组)_第10张图片
sort方法

concat-合并数组###

原数组未修改,参数可以是数组,数组会被拉平,但只会拉平一次

学习JS笔记(第五章-数组)_第11张图片
数组合并

slice-返回部分数组###

左闭右开,参数为负数时,-1表示最后一个元素,原数组不会修改

学习JS笔记(第五章-数组)_第12张图片
slice方法

splice-数组拼接###

可以删除数组中的元素,也可以拼接新的元素,原数组被修改

学习JS笔记(第五章-数组)_第13张图片
splice方法

forEach-数组遍历###

3个参数:具体元素的值,索引,指向数组本身,属于es5的新特性

var arr1 = [1,2,3,4,5];
        arr1.forEach(function (x,index,a) {
            console.log(x+'|'+index+'|'+(a===arr1));
        }) //  只适用于IE9以上的浏览器。
学习JS笔记(第五章-数组)_第14张图片
forEach方法

map-数组映射###

原数组未被修改

学习JS笔记(第五章-数组)_第15张图片
map方法

filter-数组过滤###

原数组未被修改

学习JS笔记(第五章-数组)_第16张图片
filter方法

every,sum-对数组的判断###

学习JS笔记(第五章-数组)_第17张图片
every&some方法

reduce,reduceRight###

把数组元素两两进行操作,最后聚合成一个唯一的结果

学习JS笔记(第五章-数组)_第18张图片
reduce方法

indexOf,lastIndexOf数组检索###

lastIndexOf从右向左开始查找

学习JS笔记(第五章-数组)_第19张图片
indexOf方法

Array.isArray-判断对象是否为数组###

es5

Array.isArray([]); //true
判断是否是数组

总结##

数组与一般对象###

Array.prototype的原型是Object.prototype
相同点: 都可以继承 数组是对象 对象不一定是数组 都可以当做对象添加删除属性
不同点:数组自动更新length 按索引访问数组常常比访问一般对象属性明显迅速 数组对象继承Array.prototype上的大量数组操作方法。

字符串与数组###

字符串是类数组的,可以按照数组的索引去访问每个字符,也有length属性,但是没有数组中的一些操作方法,字符串可以通过如下的方式使用

Array.prototype.join.call(str,"-");
学习JS笔记(第五章-数组)_第20张图片
字符串使用数组的join方法

你可能感兴趣的:(学习JS笔记(第五章-数组))