js 数组 array 相关知识整理(方便记忆版)

js内置对象

内置对象:ECMAScript标准中定义好的,由浏览器厂商已经实现的标准对象,其中封装了专门的数据和操作数据的API。

 

js中内置对象有11个

String / Boolean / Number / Array / Date / Math / Function / RegExp  / Error / Object / Global

 

包装类型:专门封装原始类型数据,并提供对数据常用操作的内置类型。

包装类型可让原始类型的数据像引用类型一样,拥有方法和属性。

 

js中的包装类型有3个

String类型 、 Number类型 、 Boolearn类型

 

用原始类型的数据调用方法或访问属性时,js引擎自动创建对应的包装类型对象,方法调用完,包装类型对象自动释放。

 

数组

数组是引用类型(值不保存在变量本地)的对象。

用new操作符创建对象,new专门用于在内存中动态开辟一块存储空间,然后返回存储空间的地址。

使用new创建出的都是引用类型的对象。

 

索引数组:以0,1,2,3...数字作为下标,查找速度与数组长度和元素的下标密切相关。

 

关联数组/hash数组:

以字符串作下标;

length永远为0,只能用for...in遍历;

元素为键值对,var arr=["name":"杨幂","gender":"女"];

 

稀疏数组:下标不连续的数组

 

push pop unshift shift改变原数组

 

末尾进出 push pop

想象腌泡菜,一层层往里放,末尾添加 push;末尾删除 pop;

push() 方法可向数组的末尾添加一个或多个元素,并返回新的数组长度。

pop() 方法用于删除并返回删除的元素。

特点:原来的元素位置(序号)不变。

 

头部进出 unshif shift

想象排队,开头删除,shift;有人插队,还插在最前面,开头添加,unshift;

联想记忆,shift是拿刀把甘蔗头削掉,unshift,就是不要削掉甘蔗头,或者有人插队还插在最前面了,恨不得把那人按地上削一顿。

unshift() 方法可向数组的开头添加一个或更多元素,并返回新的数组长度。

shift() 方法用于把数组的第一个元素从其中删除,并返回删除的元素。

特点:原来的元素位置(序号)改变;

 

业务应用场景举例:

需求:展示最新的10条历史搜索关键词。

实现:使用缓存 storage ,开头(下标 0)添加新数据(unshift),其他数据后移(下标 + 1),超过10条,删除尾部(pop)。

 

多个数组拼接为一个新数组返回 concat

arrayObject.concat(arrayX,arrayX,......,arrayX)

 

一个数组内所有元素拼接为字符串返回 join

arrayObject.join(separator)

省略参数,则使用逗号作为分隔符。

 

改变原数组,颠倒数组内元素 reverse

arrayObject.reverse()

 

截取数组 slice,返回截取的数组

arrayObject.slice(start,end)

start 必填,含头不含尾(end)。

end 选填,没有指定end,截取从 start 到数组结束的所有元素。

参数为负,从数组尾部开始计算,-1 指最后一个元素。

 

修改数组 splice

arrayObject.splice(index,count,item1,.....,itemX)

index 必填。整数,规定修改的位置,可为负数。

count 要删除的元素数量。如果设置为 0,则不会删除项目。

item 添加的元素。

 

数组API

1、判断:数组中的元素是否符合要求,返回布尔值;

arr.every()

arr.some()

 

2、遍历:对数组中的每个元素执行相同的操作;

arr.forEach() 直接修改原数组

arr.map() 返回新数组

 

3、过滤:筛选出符合条件的元素,不修改原数组,组成新数组;

arr.filter()

 

4、汇总:将当前数组中的所有元素统计出一个结果;

arr.reduce()

你可能感兴趣的:(前端开发)