var arr=['hello','前端','world'];
1. arr.join(分隔符):将数组中的值拼接成一个字符串,返回这个字符串,默认分隔符","
arr.join();//hello,前端,world;
arr.join(|);//hello|前端|王world;
2. arr.pop();在数组的最后面,删除一个项,返回删除的项
arr.pop(); // world
3. arr.push();在数组的最后面,添加一个或多个项,返回数组的长度
arr.push('vue'); // 4
4. arr.shift();在数组的最前面,删除一项,返回删除的项
arr.shift(); // hello
console.log(arr) // ["前端", "world"];
5. arr.unshift();在数组的最前面,添加一个或多个项,返回数组的长度
arr.unshift(['vue','react']); //4
arr.unshift('uni-app','css') // 6
console.log(arr) // ['uni-app', 'css',['vue','react'],'hello','前端','world']
6. arr.reverse 数组的翻转
arr.reverse() // ['world','前端','hello'];
7. let arr1 = [1, 2, 3, 5, 6, 4]
arr1.sort((a, b) => { return a - b })
console.log(arr1);
arr.splice(begin,deleteCounts,item1,item2...)
arr.splice(从哪开始删,删几个,添加的项1,添加的项2...)
splice 可以在数组的任意位置 添加 删除 替换 任意项!!! (会改变原数组)
let arr2 = [1, 2, 3, 4, 5,6,7]
console.log(arr2.splice(2,1,8,9));//[3]
console.log(arr2) //[1, 2, 8, 9, 4, 5, 6, 7]
11. toString 将数组中所有元素转化为字符串并用逗号连接起来这里和不适用任何参数的join方法返回的字符串是一样的
let stringse= [1,2,3,4,56]
console.log(stringse.toString());
forEach遍历数组,无法在所有元素传递给调用的函数之前终止遍历,for循环可以用break ,并没有返回值
let arr6 = [1, 2, 3]
arr6.forEach((item1, index1) => { console.log(item1, index1)
map 也可循环遍历数组,返回的是函数组成的新数组。更多用于对数组或对象重新操作赋值等,我们可以对数组操作,获取所有数组对象中某个字段-如city
let list = [
{
"name": "哈尔滨",
"city": "黑龙江",
}, {
"name": "长春",
"city": "吉林",
}, {
"name": "沈阳",
"city": "辽宁",
}
]
var newErr = list.map(item => {
return item.city
})
console.log(newErr)// 黑龙江,吉林,辽宁
14. filter 筛选过滤方法,创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,不会对空的数据执行该函数,不会改变原数组;
var newarr = [
{ num: 1, val: 'ceshi', flag: 'aa' },
{ num: 2, val: 'ceshi2', flag: 'aa2' }
]
var arr2 = newarr.filter(item => item.num===2 )
console.log(arr2) // [{num: 2, val: 'ceshi2', flag: 'aa2'}]
console.log(newarr) // 原数组
15. indexOf 搜索整个数组中具有给定值得元素,返回第一个元素的索引,找不到就返回-1;
let sun = [0, 1, 2, 3]
console.log(sun.indexOf(4));
lastIndexOf() indexOf是从头到尾查找,而lastIndexOf是反向查找
let sun = [0, 1, 2, 3]
console.log(sun.lastIndexOf(1));
17. every 数组中的每一项元素,都符合设定的条件,返回true,否则返回false 。相当于逻辑与&&,同真为真,同假为假,一假为假。
var newarr = [
{ num: 1, val: 'ceshi', flag: 'aa',bk:1 },
{ num: 2, val: 'ceshi2', flag: 'aa2',bk:1 }
]
var isevery = newarr.every((item)=>{
return item.bk == 1
})
console.log(isevery) // true
18. some 数组中的有一项元素,有一项为真,返回true。相当于逻辑或||,同真为真,同假为假,一真为真。
var newarr = [
{ num: 1, val: 'ceshi', flag: 'aa',bk:1 },
{ num: 2, val: 'ceshi2', flag: 'aa2',bk:1 }
]
var isevery = newarr.some((item)=>{
return item.num== 1
})
console.log(isevery) // true
19. includes 判断数组是字符包含指定的值 ,返回布尔
let num2 = [1, 2, 3, 4]
console.log(num2.includes(1));
find 返回数组中满足 callback 函数的第一个元素的值。如果不存在返回 undefined。
const list = [
{ name: 'hello', id: 1 },
{ name: 'world', id: 2 },
{ name: 'vue', id: 3 },
];
const result = list.find(item => item.id === 3);
// result: { name: '页vue', id: 3 }
21. findIndex 返回数组中找到的元素的索引,而不是其值,如果不存在返回 -1。
const list = [
{ name: 'hello', id: 1 },
{ name: 'world', id: 2 },
{ name: 'vue', id: 3 },
];
const index = list.findIndex(item => item.id === 3);
// index: 2
22.reduce 方法在数组的每个元素上执行用户提供的回调函数。它传入对前一个元素进行计算的返回值。结果是单个值。它是在数组的所有元素上运行的结果。
参数:reduce(回调函数(必须),初始默认的值(可选))
回调函数参数
initialVal:它是前一个回调函数产生的前一个值。
currVal:它是数组的当前元素,
index:当前索引。但是,它是可选的。
arr:要遍历的数组。它也是可选的。
例:数组去重
let arr = [1,2,3,4,4,1]
let newArr = arr.reduce((pre,cur)=>{
if(!pre.includes(cur)){
return pre.concat(cur)
}else{
return pre
}
},[])
console.log(newArr);// [1, 2, 3, 4]
例:多维数组转换成一维
let arr = [[0, 1], [2, 3], [4,[5,6,7]]]
const newArr = function(arr){
return arr.reduce((pre,cur)=>pre.concat(Array.isArray(cur)?newArr(cur):cur),[])
}
console.log(newArr(arr)); //[0, 1, 2, 3, 4, 5, 6, 7]