1.every方法
- 检测数组中的元素是否全部满足条件
computed: {
isAll: {
set(val){
//点击全选,小选全部勾上
this.arr.forEach(item =>item.c = val );
},
//forEach方法循环
get(){
let flag = true;
this.arr.forEach((item) => {
if (!item.c) {
flag = false;
}
});
return flag;
//every循环方法 返回一个布尔值,全部为true返回true,否则返回false
return this.arr.every(item=>item.c)
}
},
},
2. filter方法
- 过滤原数组,返回新数组
del(id) {
//filter方法循环删除元素
this.list = this.list.filter(item => item.id !== id);
},
//forEach方法循环删除元素
del(id) {
this.list.forEach((item, index, arr) => {
if (item.id === id) {
// 数组splice方法删除元素
this.list.splice(index, 1);
}
});
},
if (this.isSel === 'yes') {
// filter 数组筛选/过滤
// 返回一个新数组, 会将循环过程中符合条件的加入新数组最后返回
return this.list.filter(item => item.isDone)
//forEach方法筛选
let newArr = []
// 如果当前是 yes 就把 isDone 为 true 的数据放到新数组中返回
this.list.forEach(item => {
if (item.isDone) {
newArr.push(item)
}
})
return newArr
}
3.findIndex方法
// 根据 id 找到对应的数据并删除
//forEach方法循环删除元素
this.list.forEach((item, index) => {
if (item.id === id) {
this.list.splice(index, 1)
}
})
// 根据自定义的条件查找索引: findIndex
// 调用这个方法也会循环数组, 有一个返回值是索引
const index = this.list.findIndex(item => item.id === id)
this.list.splice(index, 1)
},
4.forEach 按升序依次遍历数组中的值
-
语法
arr.forEach(function(value, index, arr), this); -
value(必须): 当前遍历时的数组值。
index(可选): 当前遍历时的索引值。
arr(可选): 数组对象本身。
this(可选): 执行回调函数时的。
let arr = [ 1,2,3,4,5,6]
arr.forEach((value,index)=>{
console.log(value)//值
console.log(index)//下标
5.some()检测数组中是否存在满足条件的元素
-
语法
arr.some(function(value, index, arr), this);参数值同
froEach一样返回值:布尔类型
ture / false
let arr = [1,2,3,4,5]
let result = arr.some(value=>value>6)//false
let result1 = arr.some(value=>value>2)//true
console.log(result,result1)
6.map() 对数组中的每一个元素都进行处理,返回新的数组
let arr = [1,2,3,4,5]
let result = arr.map(item=> item*2)
console.log(result)//[2, 4, 6, 8, 10]
7…keys() 遍历键名 / values() 遍历键值/ entries() 遍历键值对
for(let i of ['a','b','c'].keys()){
console.log(i)//keys()遍历下标 0 1 2
}
for(let item of ['a','b','c'].values()){
console.log(item)//values()遍历值 a b c
}
for (let [i,item] of ['a','b','c'].entries()){
console.log(i,item)//entries()遍历下标以及内容
}
8.reduce()数组的累加器,合并成为一个值。
-
语法
arr.reduce((total, value, index, arr), init)参数
total(必须):初始值,之后为上一次回调的返回值。value(必须): 数组元素的值。index(可选): 索引值。arr(可选): 数组对象。init(可选): 初始值。返回值 :累加后的值
let arr = [1,2,3,4,5] let sum = arr.reduce((total,value)=>total +value) console.log(sum)//15 //计算购物车总数量 ////先用filter 把选中的过滤出来,再用reduce累加数量,要返回 return this.list.filter((item) => item.goods_state) .reduce((sum, item) => (sum += item.goods_count * item.goods_price), 0)
9.flat()深度遍历展开数组
-
参数: depth(可选): 提取嵌套数组的结构深度,默认为1。
返回值:展开后的新数组。
flat方法会移除数组中的空白项若不清楚有多少层嵌套,可以直接用 Infinity 设置,就可全部展开
Infinity正无穷大的数值。let arr = [1,2,[3,[4,[5]]],6] let one = arr.flat() console.log(one)//[1, 2, 3, Array(2), 6] let inf = arr.flat(Infinity) console.log(inf)//[1, 2, 3, 4, 5, 6]
10.find()
find与findIndex的唯一区别在于,它返回的是实际值,而不是索引。实际工作中,咱们可以重用已经实现的findIndex。
[1, 2, 3, 4, 5, 6, 7].find(value => value === 5); // 5
11. indexOf() 查找数组中某元素的第一个索引值。[不改变原数组] 如果没有就返回-1
- 第一个参数为查找的值 第二个参数为查找的起始位
let arr = [1, 2, 3, 4, 5, 6]
//查不到返回-1,否则返回索引
console.log(arr.indexOf(3))//2
console.log(arr.indexOf(3, 3))//-1
console.log(arr.indexOf(8))//-1
12. lastIndexOf() 查找指定元素在数组中的最后一个位置。[不改变原数组]
let arr = [1, 1, 3, 4, 5, 1];
console.log(arr.lastIndexOf(1))//5
console.log(arr.lastIndexOf(1, -2))//1
13 . join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。返回一个字符串
let arr = [1, 2, 3, 4]
let b = arr.join('-')
console.log(b)//1-2-3-4
console.log(typeof b)//string
14. pop() 删除并返回数组的最后一个元素
let arr = [1, 2, 3]
let deleteitem = arr.pop()//3
console.log(arr)//[1,2]
15. push() 向数组的末尾添加一个或更多元素,并返回新的长度
let arr = [1, 2, 3]
let thelength = arr.push(4)//4
console.log(arr)//[1,2,3,4]
16. reverse() 反转数组 改变原数组
let arr = [1, 2, 3]
arr.reverse()
console.log(arr)//[3,2,1]
17. shift() 删除并返回数组的第一个元素
let arr = [1, 2, 3]
let deleteitem = arr.shift()//1
console.log(arr)//[2,3]
18. slice() 从某个已有的数组返回选定的元素
- 拷贝数组元素 [不改变原数组]
- 两个参数为 复制索引开始 和复制索引结束
let a = [1, 2, 3, 4]
let b = a.slice(0, 2)
console.log(b)//1,2
//找数组最后一个元素
let c = a.slice(-1)
console.log(c)//4
19. splice() 可以实现删除、插入和替换
- 表达式
arr.splice(index, num, item1, item2, ...);
//删除元素
let arr = [1, 2, 3, 4, 5, 6]
let newArr1 = arr.splice(0, 3)// 删除 arr 的前三个元素
let newArr2= newArr.splice(-1, 1)//删除最后一位
//删除并添加 /替换
let arr = [1, 2, 3, 4]
let addAndeDelete = arr.splice(0, 1, 6)//[6, 2, 3, 4]
20. sort() 对数组的元素进行排序
// 默认情况下,不传参数的话,默认按字母升序,若为非字符串,则先调用toString()将元素转化为字符串的 Unicode ,再进行字符串比较
let arr = [1,2,11,22,"A", "C", "B", "E", "D"];
arr.sort();
console.log(arr); //[1,11,2,22,"A","B","C","E","D"]
//数组的升序与降序排序
let arr = [1, 0, 5, 4, 9, 45, 78, 6, 14, 2];
arr.sort((a, b) => a - b) //从小到大
console.log(arr)//[0, 1, 2, 4, 5, 6, 9, 14, 45, 78]
21. toString() 把数组转换为字符串,并返回结果 [不改变原数组]
let arr = ['xiao', 'hao', 'wen', 24]
let b = arr.toString()
console.log(b)//xiao,hao,wen,24
22. unshift() 向数组的开头添加一个或更多元素,并返回新的长度。
let arr = [1, 2, 3]
let thelength = arr.unshift(4)//4
console.log(arr)//[4,1,2,3 ]
23. valueOf() 返回数组对象的原始值
-
includes() 查找数组是否包含某个元素。[不改变原数组,]
-
第一个参数为要查找的值 必填
第二个为查找的起始位置
返回值 true或false
let arr = [1, NaN, 100, '42']; console.log(arr.includes(1)); //true console.log(arr.includes(NaN)); //true console.log(arr.includes(1, 3)); //false -
24. concat()
- 连接两个或更多的数组,并返回结果
oncat()方法用于合并两个或多个数组,此方法不会更改现有数组,而是返回一个新数组。
[1, 2, 3].concat([4, 5], 6, [7, 8]) // -> [1, 2, 3, 4, 5, 6, 7, 8]
25. fill()
- 当咱们想用一个占位符值填充一个空数组时,可以使用
fill方法。如果想创建一个指定数量的null元素数组,可以这样做:
[...Array(5)].fill(null) // -> [null, null, null, null, null]
668

被折叠的 条评论
为什么被折叠?



