数组
数组基础
var arr = [1, 2, 3, 'a', 'b', 'c']
console.log(arr)
var arr1 = new Array()
console.log(arr1)
var arr2 = new Array(5)
console.log(arr2)
var arr3 = new Array(1,2,3,'a','b','c')
console.log(arr3)
数组length属性
数组名.length
var arr1 = [1,2,3,4,5]
var arr2 = ['a','b','c','d']
console.log(arr1.length)
console.log(arr1.length)
数组的索引
数组名[下标] 能够获取到这个数组中对应下标的成员具体的值
var arr = ['a','b','c','d']
console.log(arr[0])
console.log(arr[3])
遍历数组
//想办法拿到数组的每一个成员
var arr = ['a','b','c','d']
for (var i = 0; i < arr.length; i++){
console.log(arr[i]) //可以拿到arr数组中的所有的值
}
数组排序
冒泡排序
var arr = [3,6,7,2,8,6,0]
for (i = 0
for(n = 0
if(arr[n] > arr[n+1]){
var temp = arr[n+1]
arr[n+1] = arr[n]
arr[n] = temp
}
}
}
console.log(arr)
选择排序
var arr = [9,3,6,2,4,1,8,5,7]
//第一轮选择排序
var minindex = 0 //假设当前最小值的下标为0
for (var i = 1
if(arr[minindex]) > arr[i]){ //如果当前分支执行,说明数组中找到一个 比假设的最小值要小的 元素
minindex = i
}
}
//上边for循环 执行完毕后,minindex 记录的就是 真实的最小值的下标
//此时交换 真实最小值 与 我们假设的最小值
var temp = arr[0] //存储 数组下标0的值
arr[0] = arr[minindex] //讲 下标0 重新赋值 为 当前数组最小值
arr[minindex] = temp //将下标minindex 的值 重新赋值为 arr[0] 原本的值
console.log('第一轮选择排序后的数组:',arr)
//第二轮选择排序
var minindex = 1 //假设当前最小值下标为1
for (var i = 2
if(arr[minindex]) > arr[i]){
minindex = i
}
}
//上边for循环 执行完毕后,minindex 记录的就是 真实的最小值的下标
//此时交换 真实最小值 与 我们假设的最小值
var temp = arr[1]
arr[1] = arr[minindex]
arr[minindex] = temp
console.log('第二轮选择排序后的数组:',arr)
//第三轮选择排序
var minindex = 2 //假设当前最小值下标为2
for (var i = 3
if(arr[minindex]) > arr[i]){
minindex = i
}
}
//上边for循环 执行完毕后,minindex 记录的就是 真实的最小值的下标
//此时交换 真实最小值 与 我们假设的最小值
var temp = arr[2]
arr[2] = arr[minindex]
arr[minindex] = temp
console.log('第三轮选择排序后的数组:',arr)
.....
//将上述流程简化成for循环
var arr = [9,3,6,2,4,1,8,5,7]
console.log('原始数据', arr)
for(var n = 0
var minindex = n
for (var i = n + 1
if(arr[minindex]) > arr[i]){
minindex = i
}
}
var temp = arr[n]
arr[n] = arr[minindex]
arr[minindex] = temp
}
数组的常用方法
1.push
数组.push(数据)
var arr = [1,2,3,4,5]
console.log(arr.push(6))
2.pop
数组.pop()
var arr = [1,2,3,4,5,6]
console.log(arr.pop())
console.log(arr)
3.unshift
数组.unshift(数据)
var arr = [1,2,3,4,5]
console.log(arr.unshift(0))
console.log(arr)
4.shift
数组.shift()
var arr3 = [1,2,3,4,5]
console.log(arr3.shift())
console.log(arr3)
5.reverse
数组.reverse()
var arr = [5,3,8,'b',2,9,'a','c']
console.log(arr4.reverse())
6.sort
一
数组.sort()
var arr = [10,5,3,'a','ab','c','ba']
console.log(arr.sort())
console.log(typeof(arr[5]))
二
数组.sort(function (a, b) {return a - b})
var arr = [10,5,3,'a','c','ba','ab']
console.log(arr.sort(function (a, b) {return a - b}))
三
数组.sort(function (a, b) {return b - a})
var arr = [10,5,3,'a','c','ba','ab']
console.log(arr.sort(function (a, b) {return b - a}))
7.splice
一
数组.splice(开始索引,多少个)
var arr = [4,6,8,123,0,7,3,45,82]
console.log(arr.splice(2,5))
二
数组.splice(开始索引,多少个,插入的数据1,插入的数据2,....)
var arr = [4,6,8,123,0,7,3,45,82]
console.log(arr.splice(1,3,999,888,777))
8.slice
数组.slice(开始索引,结束索引)
var arr = [0,1,2,3,4,5,6,7,8,9]
console.log(arr.slice(2,5))
console.log(arr.slice(3))
console.log(arr.slice(1,-4))
9.concat
原始数组.concat(数组1,数组2,......数组1,数组2)
var arr = [1,2,3]
var newArr = arr.concat([4,5,6],[10,20],['a','b','c'],'abc')
console.log(newArr)
10.join
数组.join('连接符')
var arr = [1,2,3]
var newArr = arr.join()
console.log(newArr)
var newArr = arr.join('!')
console.log(newArr)
console.log(typeof(newArr))
11.indexOf
一
数组.indexOf(要检查的数据)
var arr = [1,1,2,2,3,3,0,4,0]
var num = arr.indexOf(100)
console.log(num)
num = arr .indexOf(0)
console.log(num)
二
数组.indexOf(要检查的数据,开始索引)
var arr = [1,1,2,2,3,3,0,4,0]
var num = arr .indexOf(1,3)
console.log(num)
num = arr.indexOf(0,7)
12.lastIndexOf
一
数组.lastIndexOf(要检查的数据)
var arr = [1,1,2,2,3,3,0,4,0]
var num = arr.lastIndexOf(3)
console.log(num)
二
数组.lastIndexOf(要检查的数据,开始索引)
var arr = [1,1,2,2,3,3,0,4,0]
var sum = arr.lastIndexOf(0,5)
console.log(num)
13.forEach
数组.forEach(function(item,index,origin){})
var arr = [100,200,300,400,500,600]arr.forEach(function(item,index,origin){ console.log(item,index)})
14.map
数组.map(function(item,index,origin){})
var arr = [100,200,300,400,500,600]
var newArr = arr.map(function(item,index,origin){
return itme * 2
})
console.log(newArr)
15.filter
数组.filter(function(item,index,origin){})
var arr = [100,200,300,400,500,600]
var newArr = arr.filter(function(item,index,origin){
return item > 350
})
console.log(newArr)
16.find
数组.find(function(item,index,origin){})
var arr = [100,200,300,400,500,600]
var newArr = arr.find(function(item,index,origin){
return item > 350
})
console.log()
17.findIndex
数组.findIndex(function(item,index,origin){})
var arr = [100,200,300,400,500,600]
var newArr = arr.findIndex(function(item,index,origin){
return item > 350
})
console.log()
18.some
数组.some(function(item,index,origin){})
var arr = [1,2,3,4,5,6,7,8,9]
var bo1 = arr.some(function(item,index,origin){
return item % 2 === 0
})
console.log(bo1)
19.every
数组.every(function(item,index,origin){})
var arr = [1,2,3,4,5,6,7,8,9]
var bo2 = arr.some(function(item,index,origin){
return item % 2 === 0
})
console.log(bo2)
20.reduce
数组.reduce(function(prev,item,index,origin){},init)
var arr = [1,2,3,4]
var str = arr.reduce(function(prev,item,index,origin){
return prev + item
},0)
console.log(str)
数组塌陷
var arr = [0, 1, 2, 3, 4, 5]
console.log('原始数组: ', arr)
for (var i = 0; i < arr.length; i++) {
arr.splice(i, 1)
i--
}
console.log('删除后的数据:',arr)
数组去重
var arr = [1,2,2,4,6,7,1,2,3,4,1,5,6]
for(var i = 0; i < arr.length; i++){
if(arr.indexOf(arr[i],i+1) !== -1){
arr.splice(i,1)
i--
}
}
console.log(arr)