title: 数组-知识总结
date: 2023-05-8 19:30:00
categories: 知识总结
tags: 数组
数组方法总结大全
toString()
把数组转换为字符串用逗号分割
let arr = ['zhansna','lisi','wangwu']
console.log(arr.toString()) // 'zhansna,lisi,wangwu'
join()
将数组转换为字符串默认值是逗号分割,根据入参分割
let arr = ['zhansna','lisi','wangwu']
console.log(arr.join('*')) // 'zhansna*lisi*wangwu'
pop()
删除数组最后一个元素,改变原数组,返回被删除数组
var fruits = ["Banana", "Orange", "Apple", "Mango"];
let x = fruits.pop();
console.log(fruits) // ['Banana', 'Orange', 'Apple']
console.log(x) // "Mango"
push()
在数组末尾新添加一个元素,返回数组的长度
var fruits = ["Banana", "Orange", "Apple", "Mango"];
var x = fruits.push("Kiwi");
console.log(fruits) // ["Banana", "Orange", "Apple", "Mango","Kiwi"]
console.log(x) // x 的值是 5
数组排序
sort()
数组排序
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return a - b});
console.log(points) // [1, 5, 10, 25, 40, 100]
var points = [40, 100, 1, 5, 25, 10];
points.sort(function(a, b){return b - a});
console.log(points) // [100, 40, 25, 10, 5, 1]
reverse()
数组反转
var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.reverse(); // 反转元素顺序
console.log(fruits) // ['Mango', 'Apple', 'Orange', 'Banana']
Math.max()
查找最大值
let arr =[1,2,3,4]
Math.max.apply(null,arr) // 4
Math.min()
查找最小值
let arr =[1,2,3,4]
Math.min.apply(null,arr) // 1
数组遍历方法
forEach()
let arr = [1,2,3]
arr.forEach((value,index,arr) =>{
console.log(value,index,arr)
})
map()
遍历数组根据 return 生成新的数组
let arr = [1,2,3]
arr.map((value,index,arr) =>{
return value*2
})
filter()
遍历数组,return 为 true 的情况下返回当前项组成新的数组
let arr = [1,2,3]
arr.map((value,index,arr) =>{
// 当为true的情况下回返回 value 组成新的数组
return value > 2
})
reduce()
数组迭代器,遍历数组 返回值作为入参,最后的返回值输出
var numbers1 = [45, 4, 9, 16, 25];
var sum = numbers1.reduce((total, value, index, array)=>{
// total 初次为arr[0] value为arr[1]
// 第二次进来为之前return的值 value为接下来的值
console.log(total, value, index, array)
// 45 4 1 [45, 4, 9, 16, 25]
// 49 9 2 [45, 4, 9, 16, 25]
// 58 16 3 [45, 4, 9, 16, 25]
// 74 25 4 [45, 4, 9, 16, 25]
return total + value
});
console.log(sum) // 99
every()
数组检查所有数组值是否通过检测,不是所有项都为 true 的话为 false
var numbers = [45, 4, 9, 16, 25];
let a = numbers.every((item) => {
return item>18
} )
console.log(a) // false
some()
数组遍历,如果有一项满足为 true 则返回 true
var numbers = [45, 4, 9, 16, 25];
let a = numbers.some((item) => {
return item>18
} )
console.log(a) // true
indexOf()
在数组中查找有返回下标没有返回-1
var fruits = ["Apple", "Orange", "Apple", "Mango"];
console.log(fruits.indexOf("ac")) // -1
find()
查找返回满足的第一个元素没有返回 undefined
var numbers = [4, 9, 16, 25, 29];
var first = numbers.find(item => item>100);
console.log(first) // undefined