目录
🍓什么是数组?
🍓创建数组的两种方式
🐇Array()构造函数的方式创建数组
语法:
//构造函数方式
var arr=new Array();//创建了一个空数组
var arr=new Array(10;"hello",true,"abc");
var arr=new Array(2);//创建了一个长度为2的数组,但还是一个空数组
🐇字面量方式创建数组
//字面量方式
var arr=[];//创建了一个空数组
var arr=[10;"hello",true,"abc"];
🍓检测是否为数组的两种方式
🐇instanceof 运算符
var arr=[];
var obj={};
console.log(arr instanceof Array);//true
console.log(obj instanceof Array);//false
🐇Array.isArray()
//检测是否为数组 Array.isArray() h5新增方法
var arr=[];
var obj={};
console.log(Array.isArray(arr));//true
console.log(Array.isArray(obj));//false
🍓遍历数组的三种方式
🐇 for循环
var arr=[1,2,3,"hello",true,"abc"];
for(var i=0;i<arr.length;i++){
console.log(arr[i]);
}
🐇 for in
语法结构:
var arr2=[1,2,3,"hello",true,"abc"];
for(var i in arr2){
console.log(arr2[i]);
}
🐇 forEach()
语法结构:
arr.forEach(function(item,i,arr){
console.log(item);//遍历数组中的每一个元素
console.log(i);//索引号,下标
console.log(arr);//当前元素的数组
})
🐇 map()映射
和 forEach()在遍历的时候用法一样
arr.map(function(item, i, arr) {
console.log(item); //遍历数组中的每一个元素
console.log(i); //索引号,下标
console.log(arr); //当前元素的数组
})
🐇 forEach() 求和
var res=[100,98,45,67,93,32,56];
var sum=0;
res.forEach(function(item){
sum+=item;
});
console.log("求和结果为:",sum);//求和结果为: 491
🐇 随机数组
var nameArr=["翠花","富贵","铁牛","二狗","龙傲天"];
for(var i=0;i<nameArr.length;i++){
console.log(i);
console.log(nameArr[i]);
}
var a=Math.floor(Math.random()*5);
console.log(a);
console.log(nameArr[a]);
🐇 map() 映射 对应
举个栗子:
用map()做判断
var res=[100,67,44,88,68,90];
var a=res.map(function(item,i,arr){
// console.log(item);//遍历的每个元素
if(item>=60){
return"及格";
}else{
return "不及格"
}
});
console.log(a); //['及格', '及格', '不及格', '及格', '及格', '及格']
🍓数组对象 方法
🐇pop() 删除
var arr = ["hello", 110, 120, "abc"];
console.log(arr.pop());//abc
console.log(arr);//0: "hello"110 120
🐇shift() 删除
var arr = ["hello", 110, 120, "abc"];
console.log(arr.shift());//hello
console.log(arr);[110, 120, 'abc']
🐇push() 添加
var arr = ["hello", 110, 120, "abc"];
console.log(arr.push("yaya"));//5
console.log(arr);//['hello', 110, 120, 'abc', 'yaya']
举个栗子:
让一个包含成绩的数组[60,50,98,76,89,34,77,63]要求把成绩低于60的删除,剩余的放到新数组里面
var arr1 = [60, 50, 98, 76, 89, 34, 77, 63];
var newArr = [];
for (var i = 0; i < arr1.length; i++) {
if (arr1[i] > 60) {
newArr.push(arr1[i]);
}
}
console.log(newArr);//[98, 76, 89, 77, 63]
🐇unshift() 添加
var arr = ["hello", 110, 120, "abc"];
console.log(arr.unshift("yeye")); //5
console.log(arr);//['yeye', 'hello', 110, 120, 'abc']
🍓数组排序
🐇recerse()
方法用于颠倒数组中元素的顺序
var arr=[10,3,6,"hello",true,8];
arr.reverse();//颠倒数组,
console.log(arr);//会修改原数组,颠倒
//[8, true, 'hello', 6, 3, 10]
🐇 sort()
语法结构:
举个栗子:
var arr = [12, 1, 5, 7, 90, 29, 8, 9];
arr.sort(function(x, y) {
// return x-y;//升序
return y - x; //降序
});
//下面是封装过的排序数组
arr.sort(fn);
function fn(a, b) {
// return a-b;//升序
return b - a; //降序
}
console.log("排序后的数组", arr);
🐇 toString() 数组转换为字符串
var arr=[1,2,3];
console.log(arr.toString());//1,2,3
🐇concat
var arr=[10,3,6,"hello",true,8];
var arr1=["abc",100];
console.log(arr.concat(arr1,"welcome"));
🐇join()
var arr=[10,3,6,"hello",true,8];
console.log(arr.join());//10,3,6,hello,true,8
console.log(arr.join("-"));//10-3-6-hello-true-8
🐇splice()
var arr = [10, 7, "hello", 8, true];
console.log(arr.splice(2, 2)); // ['hello', 8]
console.log(arr);//[10, 7, true]
console.log(arr.splice(-2, 2)); //[7, true]
console.log(arr);//[10]
console.log(arr.splice(-2, 2, "world", 100, "abc")); //[10]
console.log(arr);//['world', 100, 'abc']
console.log(arr.splice(2, 2, "world", 100, "abc")); //['abc']
console.log(arr); //['world', 100, 'world', 100, 'abc']
🐇filtre() 过滤去重
var newArr = arr.filter(function(item, i) {
return arr.indexOf(item) === i;
});
//简写成箭头函数方式
var newArr = arr.filter((item, i) => arr.indexOf(item) === i);
console.log(newArr);