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

数组概述##

创建数组##

字面量###

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

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

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

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

数组元素增删##

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

数组迭代##

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

数组迭代

二维数组##

遍历二维数组

稀疏数组##

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

稀疏数组

数组方法##

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

数组方法

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

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

join方法的妙用

reverse-将数组逆序###

原数组被修改

reverse方法

sort-排序###

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

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

sort方法

concat-合并数组###

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

数组合并

slice-返回部分数组###

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

slice方法

splice-数组拼接###

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

splice方法

forEach-数组遍历###

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

var arr1 = [1,2,3,4,5];
        arr1.forEach(function (x,index,a) {
            console.log(x+'|'+index+'|'+(a===arr1));
        }) //  只适用于IE9以上的浏览器。
forEach方法

map-数组映射###

原数组未被修改

map方法

filter-数组过滤###

原数组未被修改

filter方法

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

every&some方法

reduce,reduceRight###

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

reduce方法

indexOf,lastIndexOf数组检索###

lastIndexOf从右向左开始查找

indexOf方法

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

es5

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

总结##

数组与一般对象###

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

字符串与数组###

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

Array.prototype.join.call(str,"-");
字符串使用数组的join方法
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容