设一个数组
let arr=[{"id":1,"name":"王"},{"id":2,"name":"李三"},{"id":3,"name":"孙"}]
let add=[{"id":4,"name":"钱"},]
数组添加
arr.push(add),默认在尾部添加
arr.unshift(add)默认在头部添加
数组删除
arr.pop()在末尾删除
arr.shift()在头部删除
arr.splice(2,1)包含开头不包含结尾(也可替换)
数组截取
arr.slice(2,1),包含开头不包含结尾
数组查找
arr.findIndex(item=>item.id==2)返回的是数组的下标
数组模糊查找
arr.filter((item,index)=>{
return item.indexOf(item.name=="三")
})
数组排序
-
数组从小到大排序
let arr =[1,9,4,8,44,33,2]
arr.sort()如果单纯使用数值过多会产生数值错乱
arr.sort(function(num1, num2) {
// num1, num2: 代表的是数组中的元素
return num1 - num2
})
-
数组降序序或者升序sort()
const products = [ { "num": 200 },{ "num": 500 },{ "num": 20 },{ "num": 100 }]
//升序
products.sort((a, b) => a.num - b.num);
//降序
products.sort((a, b) => b.num - a.num)
数组替换
arr.splice(startIndex, num, ...item)
startIndex: 开始下标
num:要替换的数组的个数
item: 要替换的数组元素(剩余参数
数组连接
arr3=arr1.concat(arr2)
数组循环
arr.forEach((item,index)=>{
})
判断数组中的元素是否存在
arr.includes('数组中的元素')
如果元素存在,返回的是元素的下标,否则返回的-1
数组中的元素是否满足条件
arr.every((item, index, arr) => '表达式')
如果数组中的元素都不满足条件,返回false;只要有一个元素满足条件,返回true
数组的映射方法
arr.map((item, index, arr) => '表达式')
数组的迭代方法
-
数组元素求和:
-
arr.reduce((initailValue, item, index, arr) => '表达式', '可选的参数initial')
如果reduce的第二个参数不存在:initailValue的值为数组的第一个元素
如果reduce的第二个参数存在:initailValue的值为reduce函数的第二个参数
const res = arr.reduce(function(num, item) {
console.log(num)
return num + item;
})
const [count, setCount] = useState([
{id:1,price:200},
{id:2,price:300},
{id:3,price:400},
{id:4,price:500},
])
let co=count.reduce((a,b)=>a+b.price,0)
console.log(co);
数组的去重:
const arr3 = [1, 3, 2, 1, 5, 10, 5, 8]
function fn(dex){
let arr=[]
dex.forEach(item=>{
return arr.includes(item)?'':arr.push(item)
})
return arr
}
方法二://es6方法 Set去重
function fn(dex){
return Array.form(new Set(dex))
}