冒泡排序的口诀
外层循环 n-1
- 内层循环 n-1-i
- 两两比较做交换
* 数组的方法
*
* 1. push;
* 语法: 数组.push(数据)
* 作用: 向 数组末尾 添加数据
* 返回值: 追加数据后, 数组最新的长度
* 2. pop;
* 语法: 数组.pop()
* 作用: 删除数组的最后一项
* 返回值: 删除的哪一项数据
* 3. unshift;
* 语法: 数组.unshift(数据)
* 作用: 向 数组头部 添加数据
* 返回值: 追加数据后, 数组最新的长度
* 4. shift;
* 语法: 数组.shift()
* 作用: 删除数组头部(第一项)的数据
* 返回值: 删除的哪一项数据
* 5. reverse;
* 语法: 数组.reverse()
* 作用: 反转数组
* 返回值: 反转后的数组
* 6. sort;
* 语法: 数组.sort(); 数组.sort(function (a, b) {retrun a - b});
数组.sort(function (a, b) {retrun b - a})
* 作用:
* 不传参数
* 会将数组内所有值, 转换为字符串, 然后一位一位的对比(第一位相同,对比第二位,...)
* 传参---函数 return a - b
* 会将数组内所有的值, 按照数字的 从小到大排列
* 传参---函数 return b - a
* 会将数组内所有的值, 按照数字的 从大到小排列
* 返回值:
* 不传参数
* 将排序后的数组返回
* 传递参数
* 将排序后的数组返回
* 7. splice;
* 语法: 数组.splice(开始索引, 多少个); 数组.splice(开始索引, 多少个, 数据1,
数据2, 数据3...)
* 作用:
* 不传参数: 剪切数组中的某一段数据
* 传递参数: 剪切数组中的某一段数据, 将第三个参数开始, 当成新数据插入到数组内
* 返回值: 截切后的数据(数组形式)
* 8. slice; (不会改变原数组)
* 语法: 数组.slice(开始索引, 结束索引)
* 参数特点: 1. 包含开始索引, 不包含结束索引(到结束索引前一位)
* 2. 参数接受负数(相当于 数组.length + 负数)
* 3. 不传结束索引 相当于写了 数组.length
* 4. 一个参数都不传 相当于复制整个数组, 或者只传递第一个参数为 0
* 作用: 复制数组中的某一段数据
* 返回值: 复制出来的内容
9. concat;
* 语法: 数组.concat(数据1, 数据2)
* 作用: 将 参数, 合并到 指定数组内(如果参数写了数组, 那么会将数组的每一个值
合并到指定数组)
* 返回值: 合并后的数组
* 10. join;
* 语法: 数组.join(连接符)
* 参数可以不传, 不传递默认按照 , 逗号
* 作用: 通过连接符连接数组的每一个值
* 返回值: 连接好的数组
* 11. indexOf;
* 语法: 数组.indexOf(数据); 数组.indexOf(数据, 开始索引)
* 作用: 在数组内寻找指定数据
* 返回值:
* 1. 找到数据的时候, 返回数据第一次出现的下标
* 2. 找不到的时候, 返回 -1
* 12. lastIndexOf
* 语法: 数组.lastIndexOf(数据); 数组.lastIndexOf(数据, 开始索引)
* 作用: 在数组内寻找指定数据(倒叙寻找)
* 返回值:
* 1. 找到数据的时候, 返回数据第一次出现的下标
* 2. 找不到的时候, 返回 -1
*