冒泡排序:对比数组前一项和后一项,如果前一项大,就往后面挪。
实现代码:if (arr[i] > arr[i + 1]) {
var temp = arr[i]
arr[i] = arr[i + 1]
arr[i + 1] = temp
}
选择排序:主要看值的索引,假设索引为0的值最小,把它与a[i]作比较,如果a[i]较小,就先赋值为a[i]再进行交换。
实现代码: var minIndex = k
for (var i = k + 1; i < arr.length; i++) {
if (arr[minIndex] > arr[i]) {
minIndex = i
}
}
var temp = arr[k]
arr[k] = arr[minIndex]
arr[minIndex] = temp
数组的方法:
1 push ##
语法:数组.push(数据) 作用:向数组末尾添加数据
返回值:数组新长度
2 pop
语法:数组.pop() 作用:删除数组最后一项
返回值:数组被删除的值
3 unshift
语法:数组.unshift(数据) 作用:向数据头部添加数据
返回值:数组新长度
4 shift
语法:数组.shift() 作用:删除数组第一项
返回值:数组被删除的值
5 reverse
语法:数组.reverse() 作用:反转数组
返回值:反转后的数组
6 sort
语法:(1)数组.sort
(2)数组.sort(function (a, b) {retrun a - b})
(3)数组.sort(function (a, b) {retrun b - a})
作用:(1)不传参数:会将数组里面的数字转化为字符串一位一位的进行对比
(2)传参 函数return a - b: 将数组里面的数字从小到大排列
(3)传参 函数return b - a: 将数组里面的数字从大到小排列
返回值:都是将排序后的数组返回
7 splice
语法: (1)数组.splice(开始索引, 多少个)
(2)数组.splice(开始索引, 多少个, 数据1, 数据2, 数据3...)
作用:(1)不传数据: 剪切数组中的某一段数据
(2)传递数据: 剪切数组中的某一段数据, 从第三个参数开始, 当成新数据插入到数组内
返回值:被剪切的数据(数组形式)
8 slice (不会改变原数组)
语法: 数组.slice(开始索引, 结束索引)
参数特点: (1) 包含开始索引, 不包含结束索引(到结束索引前一位)
(2)参数接受负数(相当于数组.length + 负)
(3)不写结束索引(相当于写了.length)
(4)一个参数都不传,会复制整个数组
作用:复制数组中的某一段数据
返回值:复制出来的内容
9 concat(不会改变原数组)
语法: 数组.concat(数据1, 数据2)
作用: 将参数合并到指定数组内(如果参数写了数组, 那么会将数组的每一个值合并到指定数组)
返回值: 合并后的数组
10 join (不会改变原数组)
语法: 数组.join(连接符)
参数可以不传, 不传递默认按照 , 逗号
作用: 通过连接符连接数组的每一个值
返回值: 连接好的数组
11 indexOf(不会改变原数组)
语法:(1) 数组.indexOf(数据)
(2)数组.indexOf(数据, 开始索引)
作用: 在数组内寻找指定数据
返回值:
(1) 找到数据的时候, 返回数据第一次出现的下标
(2)找不到的时候, 返回 -1
12 lastIndexOf(不会改变原数组)
语法:(1)数组.lastIndexOf(数据)
(2)数组.lastIndexOf(数据, 开始索引)
作用: 在数组内寻找指定数据(倒叙寻找)
返回值:
(1) 找到数据的时候, 返回数据第一次出现的下标
(2) 找不到的时候, 返回 -1