数组

数组(Array)

一组相同类型或者不同类型的数据的集合。

数组的创建

内置构造函数创建数 - new Array

字面量创建一个数组 - [ ]

数组的索引及length属性

索引也叫做下标,是指一个数据在数组里面排在第几个的位置

数组的索引,系统默认从0开始对数组项进行编号,通过数组的索引获取数组项的值或者设置数组项的值。通过length属性可以获取数组的长度

length属性可以从数组的后面删除或者添加数组项

数据类型

基本类型:number string boolean null undefined

基本类型:存储在栈内存中

复杂类型(引用类型):object(对象)

引用类型:地址存放在栈内存中,值是存放在堆内存

检测数据类型:typeof

基本类型和引用类型的赋值

基本类型遵循值传递

引用类型遵循值传递,传递的是地址

for和for...in

for循环遍历数组

for循环无法遍历对象,因为对象是无序的,javascript引入了for...in循环,专门遍历对象

for...in遍历对象,最好不要去遍历数组

点操作符:访问对象的属性和方法的一种符号。点操作符后面只能跟字符串

[]操作符:访问对象的属性和方法的一种符号。中括号后面可以跟字符串和变量

对象的属性一定是字符串,系统会自动调用toString()进行转换

数组的方法

实例方法 栈:后进先出

push() 可以接收任意数量的参数,把它们逐个添

加到数组末尾,并返回修改后数组的长度。改变原数组。

pop() 从数组末尾移除最后一项,减少数组的length值,然后返回移除的项。

队列方法:先进先出

unshift()方法能够在数组前面添加任意个项并返回新数组的长度。

shift() 方法能够移除数组中的第一个项并返回该项,同时将数组长度减 1。

重排序方法

reverse() 方法会反转数组项的顺序。

sort() 方法按字母表(unicode编码)升序排列数组项。

如果利用sort排序数字,需要添加一个比较函数作为参数

a-z 97-122
A-Z 65-90
0-9 48-57

返回数组

concat() 方法可以基于当前数组中的所有项创建一个新数组,参数可以是数组项或者数组

应用:快速排序,数组的扁平化。

slice() 方法它能够基于当前数组中的一或多个项创建一个新数组。可以接受一或两个参数(索引位置,不包括结束位置)。参一:起始位置,参二:结束位置,返回一个新数组,不改变原数组

splice() 方法,对数组进行删除、插入、替换,是最强大的数组方法,返回值是数组,改变原数组。参1:起始索引位置,参2:删除的长度,参数3开始:需要添加的数组项。

join()方法,将数组转换成对应的字符串。参数就是连接符。

indexOf/lastIndexOf(位置方法)

返回要查找的项在数组中的索引位置,没找到的情况下返回-1。

两个参数:参1要查找的数组项,参2(可选的)查找的起点位置的索引

迭代方法

迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程的重复称为一次“迭代

每一个方法有两个参数:参1是一个函数(回调函数) 参2(可选的) this指向

参1是一个函数(回调函数),这个回调函数又有三个参数(数组项的值(value),数组项的索引位置(index),数组本身(array))

every():对数组中的每一项运行给定的函数,如果该函数对数组的每一项都返回true,整个方法的结果就是true.

some():对数组中的每一项运行给定的函数,如果该函数对数组的任意一项返回true,结果就返回true

filter():对数组中的每一项运行给定的函数,返回该函数结果为true项组成的数组。(过滤)

map() : 返回一个新数组(满足条件布尔值),数组中的元素为原始数组原始数组调用函数处理后的值,不会改变原数组

forEach() : 用于调用数组的每个元素,并将元素传递给回调函数

归并方法

reduce() reduceRight()

这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。每一次迭代得到的结果会作为下一次迭代的初始值

reduce() : 从数组的第一项开始,逐个遍历到最后

reduceRight() :从数组的最后一项开始,逐个遍历到第一项

方法包含两个参数:参1每一项执行的函数,参2 迭代的初始值(可选的)

每一项执行的函数里面包含四个参数(前一个值(prev),当前值(curr),数组项的索引(index),数组本身(array))

冒泡排序

相邻的元素两两比较,如果第一个数比第二个数大,交换位置,每一轮有一个数字排序好了。

选择排序

工作原理:每一次从待排序的数据中选出最小的一个元素,存放起始位置。直到全部排序完成。

var p={
_age:18,
get age(){
return this._age;
},
set age(val){
this._age=val;
}
}
p.age; // 18
p.age=20; // 20
p.age; // 20

Object.assign() --- 合并对象

原文地址:https://www.cnblogs.com/zlf1914/p/12801714.html