Array
遍历数组
| |
---|
forEach() | 遍历数组 |
map() | 遍历数组,并通过执行函数返回新数组 |
filter() | 通过一定条件过滤,返回新数组 |
reduce() | 计算总和 |
every() | 检查数组值是否全部通过测试,全为真为真 |
some() | 检查数组值是否部分通过测试,部分真为真 |
find() | 返回符合条件的第一个值 |
1. forEach
const arr = [1, 2, 4, 'aa', 'hang', '11', 'dan']
arr.forEach(item => {
console.log(item);
})
2. map
const arr1 = [1, 2, 3]
const arr2 = arr1.map((item, index) => {
return item * index
})
console.log(arr2); // [ 0, 2, 6 ]
3. filter
const arr1 = [1, 2, 3]
const arr2 = arr1.filter((item, index) => {
return item > index
})
console.log(arr2); // [ 1, 2, 3 ]
4. reduce
const arr1 = [1, 2, 3]
const res = arr1.reduce((total, item, index) => {
return total + item
}, 100)
console.log(res); // 106
5. every
const arr1 = [1, 2, 3]
const res = arr1.every((item, index) => {
return item > index
})
console.log(res); // true
添加
| |
---|
push() | 添加新元素 |
unshift() | 数组最前面添加元素 |
splice(position, length, str) | 在某位置删除自定义长度元素,并添加自定义元素 |
const arr = [1, 'hang', 'dan']
arr.push('jia')
const arr = [1, 'hang', 'dan']
// 2: 在第二位
// 0 删除0个元素
arr.splice(2, 0, '11', '22', '33')
console.log(arr); // [ 1, 'hang', '11', '22', '33', 'dan' ]
删除
| |
---|
pop() | 删除最后一位元素并返回值 |
shift() | 删除第一个元素,且后续元素向前位移 |
splice() | 删除元素 |
arr.splice(2, 1)
数组类型
typeof [] // object
[].isArray() // true
[] instanceof Array // true
数组转为字符串
| |
---|
toString() | 将数组转换为字符串 |
join() | 通过自定义符号将数组转换为字符串 |
const arr = [1, 'hang', 'dan']
console.log(arr.toString()); // 1,hang,dan
console.log(arr.join('-')); // 1-hang-dan
连接数组
const arr1 = [1, 'hang', 'dan']
const arr2 = ['11', '22']
console.log(arr1.concat(arr2)); // [ 1, 'hang', 'dan', '11', '22' ]
裁剪数组
| |
---|
slice(start, end) | 裁剪数组,返回一个新数组 |
const arr1 = [1, 'hang', 'dan']
const arr2 = arr1.slice(1)
const arr3 = arr1.slice(1, 2)
console.log(arr2); // [ 'hang', 'dan' ]
console.log(arr3); // [ 'hang' ]
数组排序
| |
---|
sort() | 裁剪数组,返回一个新数组 |
reverse() | 数组反转 |
注意: 字符串以第一个字符排序
例如: "25" > "100",因为2大于1,这就容易造成混乱
比值函数:(sort排序时会通过接收两个值进行比较)
arr.sort(function(a, b){return a-b}) // 升序
arr.sort(function(a, b){return b-a}) // 降序
随机排序
arr.sort(function(a, b){return 0.5 - Math.random()})
查找最大最小值
sort之后再获取第一项和最后一项效率较低
Math.max.apply(null, [1, 2, 3]) = Math.max(1, 2, 3)