数组
大约 3 分钟
数组是一个有序的列表,可以在数组中存放任意的数据,并且数组的长度可以动态的调整。
var arr = ['1', 1, 'xx']
arr[0] = '1'
arr.length = 3
泡沫排序
var numbers = [1, 2, 3, 4, 5]
var count = 0 // 记录循环的次数
// 外层循环:控制趟数,每一趟找到一个最大值
for (var i = 0; i < numbers.length - 1; i++) {
// 假设数据排好顺序了
var isSort = true
count++
// 内层循环:控制比较的次数,并且判断两个数的大小,把大的数往后移动,小的数往前移动
for (var j = 0; j < numbers.length - 1 - i; j++) {
count++
// 两两比较 从小到大排序
if (numbers[j] > numbers[j + 1]) {
// 没有排好
isSort = false
// 交换位置
var tmp = numbers[j]
numbers[j] = numbers[j + 1]
numbers[j + 1] = tmp
}
}
// 某一趟结束,判断一下排序是否结束
// 如何判断排序是否排好,根据是否发生了数据交换,如果发生了数据交换说明没有排好
if (isSort) {
// 如果排好顺序
break
}
}
console.log(numbers)
console.log(count)
数组方法
清空数组
arr = [] //推荐
arr.length = 0
arr.splice(0, arr.length)
join()方法
将数组转为字符串,并且默认使用逗号','将数组每个元素拼接起来。
arr.join(',') // '2,3,4,5'
arr.join('') // '2345'
filter()方法
过滤数组元素的方法,返回值:过滤后的数组。
var arr = [1500, 1200, 2000, 2100, 1800]
var newArray = arr.filter(function (item) {
// item 就是数组中的每一个元素
return item < 2000
})
console.log(newArray)
indexOf()方法
查找数组中元素的位置,找到了返回索引,没找到返回-1,从前往后找,默认从 0 开始找。
// indexOf 的第二个参数 设置 indexOf 查找的开始位置
console.log(arr.indexOf('a', 2))
// 如果没有找到元素 indexOf 会返回-1
var index = -1
do {
index = arr.indexOf('a', index + 1)
if (index !== -1) {
console.log(index)
}
} while (index !== -1)
字符串对象的常用方法
字符串所有的方法,都不会修改字符串本身(字符串是不可变的),操作完成会返回一个新的字符串
- 字符方法
charAt() //获取指定位置处字符
str[0] //HTML5,IE8+支持 和charAt()等效
- 字符串操作方法
slice() //从start位置开始,截取到end位置,end取不到
substring() //从start位置开始,截取到end位置,end取不到
substr() //从start位置开始,截取length个字符
- 位置方法
indexOf() //返回指定内容在元字符串中的位置
lastIndexOf() //从后往前找,只找第一个匹配的
- 去除空白
trim() //只能去除字符串前后的空白
- 大小写转换方法
to(Locale)UpperCase() //转换大写
to(Locale)LowerCase() //转换小写
- 其它
search() // 查找, 功能同indexOf(),但是支持正则表达式
replace() // 替换, 传入指定的字符串和替换后的字符串进行替换
split() // 切割字符串, 根据指定的分隔符进行切割, 返回一个数组
