Javascript 数据结构之~~数组

几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构。

数组是存储一系列同一种类型的值。相当于一个容器,(当然也可以存储不同类型的值),数据都会被存储在一个容器中,那么数据进入容器就会有一定的顺序和方法,先进后出,先进先出,末尾,开头,底部,顶部,等等。

创建数组:

访问元素和迭代数组:

for 循环:

在javascirpt中,数组是一个可以修改的对象。如果添加和删除元素,它就会动态增长和减少

在数据末尾插入元素:

let numbers = [0, 1, 2];

如果想要给数组添加一个元素,比如3,只要吧值赋给数组中最后一个空位的元素即可

numbers[numbers.length] = 3

但是我们可以使用数组的push方法

number.push(3);

当然,也可以添加多个元素

number.push(3, 4, 5);

在数组开头插入元素:

unshift 方法(意为在首部插入)

删除元素:

从数组末尾删除元素:numbers.pop();

通过push() 和 pop() 就可以模拟栈(后进先出)

用delete删除元素,但是元素的位置会被empty 占位

从数组开头删除元素(即删除数组的第一个元素):shift()

那么,在任意位置删除数组中的元素呢?

splice();

那我们想把刚才删除的元素又重新放回数组里呢?还是splice()方法

如果想把两个数组,还有对象,单个元素统统放到一个数组中concat() 数组合并

以上方法是为了基于数据来模拟后边的数据接口栈push(),pop();方法即可来实现栈的数据结构特点。

此外因为数组这种数据结构应用广泛,它的方法还有很多:

every : 对数组中的每个元素运行给定的函数,如果该函数对每个元素都返回true,则返回true

filter:对数组中的每个元素运行给定函数,返回该函数返回true的元素组成的数组

forEach(): 对数组中的每个元素运行给定的函数。这个方法没有返回值

join()将所有的数组元素连接成一个字符串

indexOf() 返回一个于给定的参数相等的数组元素的索引,没有找到则返回-1

lastIndexOf() 方法可返回一个指定的字符串值最后出现的位置,在一个字符串中的指定位置从后向前搜索

map() 对数组中的每一个元素运行给定的函数,返回每次函数执行的结果组成的数组

reverse()对数组中的元素逆向排序

slice()传入索引值,将数组里对应索引范围内的元素作为新数组返回

some() 对数组中中的每个元素运行给定的函数,如果任意一个元素返回true,则返回true

sort()按照字母顺序对数组进行排序

toString()将数组作为字符串返回

valueOf()和toString()类似,将数组作为字符串返回

ES6新增的数组方法:

@@iterator 返回一个包含数组键值对的迭代器对象,可以通过同步调用得到数组元素的键值对

copyWithin() 复制数组中的一系列元素到同一个数组指定的起始位置

entries 返回包含数组所有键值对的@@iterator

includes()如果数组中存在某个元素则返回true,否则返回false.

find() 根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素

findIndex() 根据回调函数给定的条件从数组中查找元素,如果找到则返回该元素的索引

fill() 用静态值填充数组

keys() 返回数组中所有索引的@@iterator

from() 根据已有数组创建一个新数组

of()根据传入的参数创建一个新数组

values()返回数组中所有索引的@@iterator

此外,附上一篇掘金网站看到的15种数组方法总结:

https://juejin.im/post/5ddc6ad8518825731161fa75

发布了69 篇原创文章 · 获赞 35 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/qyl_0316/article/details/101162782