目录
5.遍历数组,返回第一个符合条件的元素 Array.find()
7.遍历数组,让每个元素都调用一次函数,返回新数组 Array.map()
10.判断一个数组是否包含一个指定的值,返回布尔类型的值 Array.includes()
11.查找元素索引 Array.indexof() 有的话返回索引,么有返回-1
13.数组转字符串,参数为要拼接的字符 Array.join()
14.数组的增删 push() unshift() pop() shift()
1.数组拼接Array.concat()
// array,concat() 数组拼接,不会改变原数组,返回值是一个新数组
// arr.concat(arr1) 以arr为基础,拼接上arr1
var arr = [1,2,3]
var arr1 = [4,5,6]
var arr2 = [7,8]
var arr3 = arr.concat(arr1,arr2)
console.log(arr3); //[1,2,3,4,5,6,7,8]
2. 遍历数组 Array.every()
//遍历数组,返回布尔类型的值 Array.every()
//遍历数组,必须每个元素都符合表达式才返回true
//参数 1.数组元素 2.索引值 3.数组本身
var arr = [1,2,3,4,5]
var flag = arr.every(function(item,index,array){
return item <=4
})
console.log(flag); //flase
3.遍历数组,返回布尔类型 Array.some()
// 遍历数组,返回布尔类型 Array.some()
var arr = [1,2,3,4,5]
var flag = arr.some(function(item,index,array){
return item <=1
})
console.log(flag);//ture
4.遍历数组,过滤数组 Array.filter()
//遍历数组,过滤数组 Array.filter()
//筛选 返回一个符合条件的新数组
var arr = [1,3,5,7,9]
var newArr = arr.filter(function(item,index){
return item >3
})
console.log(newArr);//[ 5, 7, 9 ]
5.遍历数组,返回第一个符合条件的元素 Array.find()
//遍历数组,返回第一个符合条件的元素 Array.find(),没有符合条件返回undefined
var arr = ['red','green','blue','pink']
var item = arr.find((item) => {return item =='blue'})
console.log(item); // 'blue'
var arr1 = [1,3,4,6,8,9]
var item1 = arr1.find(function(item){
return item >=5
})
console.log(item1);//6
//没满足条件的返回undefined
6.寻找满足条件的第一个元素的索引号 Array.findindex()
// 寻找满足条件的第一个元素的索引号 Array.findindex() ,没有返回-1
var arr = [1,2,3,5,7,8]
var index = arr.findIndex(function(item){
return item > 6
})
console.log(index); // 4
7.遍历数组,让每个元素都调用一次函数,返回新数组 Array.map()
//遍历数组,让每个元素都调用一次函数,返回新数组 Array.map() 不改变数组本身
var arr = [1,3,5,7]
var newArr = arr.map(function(item){
return item *2
})
console.log(newArr); // [ 2, 6, 10, 14 ]
8.遍历数组 Array.forEach()
//遍历数组 Array.forEach() 返回值 undefined
//不改变元素本身
var arr = ['red=5','blue=6','red=7']
var newArr = []
arr.forEach(function(item){
newArr.push(item.replace('=',':'))
})
console.log(arr); //[ 'red=5', 'blue=6', 'red=7' ]
console.log(newArr); // [ 'red:5', 'blue:6', 'red:7' ]
9.将伪数组转为真数组 Array.from()
// 将伪数组转为真数组 Array.from()
// 可以转换DOM元素对象数组转为真数组
// 可以转换set
/* var str = 'foo'
var arr = Array.from(str)
console.log(arr); //[ 'f', 'o', 'o' ] */
var s = new Set([1,2,3,4])
console.log(Array.from(s)); //[ 1, 2, 3, 4 ]
10.判断一个数组是否包含一个指定的值,返回布尔类型的值 Array.includes()
//判断一个数组是否包含一个指定的值,返回布尔类型的值 Array.includes()
var arr = [1,3,4,5]
var flag = arr.includes(3)
var flag1 = arr.includes(6)
console.log(flag); //true
console.log(flag1); // flase
11.查找元素索引 Array.indexof() 有的话返回索引,么有返回-1
Array.lastIndexOf() 从最后开始找
//查找元素索引 Array.indexof()
var arr = [1,2,3,4,5]
var index = arr.indexOf(4)
var index1 = arr.indexOf(6)
console.log(index);//3
console.log(index1);//-1
12.判断是否是数组 Array.isArray()
//判断是否是数组 Array.isArray()
var arr = [1,2]
var str = '12'
console.log(Array.isArray(arr)); //true
console.log(Array.isArray(str)); // false
13.数组转字符串,参数为要拼接的字符 Array.join()
// 数组转字符串,参数为要拼接的字符 Array.join()
// 不会改变原数组
var arr = [1,2,3,4]
console.log(arr.join('&')); // 1&2&3&4
console.log(arr.join('-')); //1-2-3-4
14.数组的增删 push() unshift() pop() shift()
// 数组的增删 push() unshift() pop() shift()
var arr = [2,4,6]
// push() 末尾增加,返回数组最新长度
console.log(arr.push(8)); //4
// unshift() 开头增加,返回数组最新长度
console.log(arr.unshift(0)); //5
//pop() 末尾删除,返回删除的元素
console.log(arr.pop()); // 8
//shift() 开头删除,返回删除的元素
console.log(arr.shift());//0
15.翻转数组 Array.reverse()
//翻转数组 Array.reverse()
//会改变原数组
var arr= [1,2,3]
arr.reverse()
console.log(arr); // [ 3, 2, 1 ]
16.提取/截取数组元素 Array.slice()
//两个参数,第一个开始,第二个结束 ,包括第一个,不包括第二个
const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];
console.log(animals.slice(2)); //["camel", "duck", "elephant"]
console.log(animals.slice(2, -1)); //["camel", "duck"]
17.排序 Array.sort()
// 排序 Array.sort()
//不传参数的话以ASCII🐴表排序
// 会改变原数组
var arr = [1,11,4,33,6,2,9]
console.log(arr.sort()); //[ 1, 11, 2, 33, 4, 6, 9]
console.log(arr.sort(function(a,b){
return a-b
})) // [1, 2, 4, 6, 9, 11, 33]
console.log(arr.sort(function(a,b){
return b-a
}));//[33, 11, 9, 6,4, 2, 1]
18.删除替换 Array.splice()
//删除替换 Array.splice() 会改变原数组
// 第一个参数:开始位置 第二个参数:删除个数 第三个... :增加的元素
// 返回值:被删除的元素
var arr= [1,2,3,4,5]
console.log(arr.splice(1,2));//[ 2, 3 ]
console.log(arr.splice(0,0,0)); // []
console.log(arr); // [ 0, 1, 4, 5 ]
19.转换为字符串 Array.toString()
//转换为字符串 Array.toString() 不改变原数组
//不转换原数组 用逗号分隔
var arr = [1,3,5,6,'a']
console.log(arr.toString());// '1,3,5,6,a'
20.检测是否是数组 instanceof
// 检测是否是数组 instanceof
// 检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
var arr = []
var str = ''
console.log(arr instanceof Array); //true
console.log(str instanceof Array); //flase
console.log(arr instanceof Object); // true
21.给数组提供一个函数按序执行Array.reduce
// 创建一个数组
const arr = [1, 2, 3, 4];
//arr.reduce有两个参数,第一个参数是处理函数,处理函数有四个参数,第一个是上一次函数的返回值,第二个是数值的元素,第三个是数组索引号,第四个是数组本身
// 第二个参数是sum的初始值,如果不穿,会将索引值为1的数组元素作为初始值
const arrSum = arr.reduce((sum, current, index, array) => {
return (sum += current);
}, 0);
console.log(arrSum); // 10