创建数组 数组可以自动扩展,不存在下标越界。同一个数组可以包含不同类型的数据
1.new 对象 下标
let arr = new Array();
arr[0]="html";
arr[1]="css";
2.new 对象 下标
let arr = new Array("html","css");
3.字面量 创建数组
let arr = ["html","css"]
数组方法
length 数组长度
isArray() 判断是否是数组,返回boolean;
flat(); 对数组进行降维处理,默认降一次,可以赋值降几次 返回一个新的数组
let new数组名 = 数组名.flat();
map() 数组方法,有返回值,返回了一个新的和老数组长度一定一致的新数组,新数组有可能是二维数组
flatMap 数组方法,有返回值,返回了一个新的和老数组长度有可能不一致的新数组,新数组一定是一维数组
join() 将数组以特定符号分割为字符串
let arr = ["html","css","js"];
console.log(arr);
let newarr = arr.join("+");
console.log(newarr);
split() 将字符串以特定符号分割为数组
let email = prompt();
let newemail = email.split("@");
console.log(newemail);
console.log("账号:"+newemail[0],",密码:"+newemail[1]);
sort 默认按照数字的第一位数进行排序
//sort 默认按照数字的第一位数进行排序
let arr = [3,9,5,6,845,346,26,48,96];
console.log(arr.sort());
arr.sort(function(a,b){
return a-b; //正序
});
console.log(arr);
arr.sort(function(a,b){
return b-a; //倒序
});
console.log(arr);
向末尾增加元素 push()
arr.push("java","mysql","ssm");
删除末尾元素 pop()
arr.pop();
向头部增加元素 unshift()
arr.unshift("java","mysql");
向头部删除元素 shift()
arr.shift();
splice(起始下标,删除个数) //删除任意位置元素
arr.splice(1,1);
splice(起始下标,替换个数,"替换数据"....) //替换任意位置元素
arr.splice(1,2,"java","mysql");
splice(起始下标,新增个数,"新增的数据"....) //新增元素
arr.splice(5,3,"java","mysql","linux","spring");
concat 合并数组
let a = ["阿达的","入股熊胆粉","奥术大师"];
let b = [1,2,3];
let d = a.concat(b);
console.log(d);
filter 返回数组中满足条件的所有元素【过滤器】
let arr = [45,12,76,23,98,0,3,656];
let newarr = arr.filter(function(value){
if(value > 100){
return value;
}
})
console.log(newarr);
find 返回数组中满足条件的第一个元素
let arr = [45,12,76,23,98,0,3,656];
let item = arr.find(function(value){
if(value > 50){
return value;
}
console.log(item);
findIndex 返回数组中满足条件的第一个元素的下标
let arr = [45,12,76,23,98,0,3,656];
let index = arr.findIndex(function(value){
if(value > 50){
return value;
}
})
console.log(index);
includes 判断数组中是否有指定的元素,有返回true,否则返回false
let arr = [45,12,76,23,98,0,3,656];
let bol = arr.includes(0);
let bol1 = arr.includes(100);
console.log(bol,bol1); //true false
every 判断数组中的所有元素是否满足条件,都满足返回true,否则false 【&&】
let arr = [45,12,76,23,98,10,3,656];
let bol = arr.every(function(value){
if(value > 50){
return value;
}
})
let bol1 = arr.every(function(value){
if(value > -10){
return value;
}
})
console.log(bol,bol1); //false true
some 判断数组中的所有元素是否满足条件,有一个满足,返回true,否则false 【||】
let arr = [45,12,76,23,98,0,3,656];
let bol = arr.some(function(value){
if(value > 50){
return value;
}
})
let bol1 = arr.some(function(value){
if(value < -1){
return value;
}
})
console.log(bol,bol1); //true false
循环
1、for循环 下标 / key / 键 【已知条件,已知范围(先判断,后执行)】
for(let i = 0; i < arr.length;i++){
document.write(arr[i]+"<br/>");
}
2、while()循环 下标 / key / 键 【未知条件,未知范围(先判断,后执行)】
let i = 0;
while(i < arr.length){
document.write(arr[i]+"<br/>");
i++;
}
3、do while()循环 下标 / key / 键 【至少执行一次(先执行,后判断)】
let i = 0;
do{
//循环代码块
document.write(arr[i]+"<br/>");
i++;
}
while(i < arr.length);
4、for of 循环 值 / value / 元素 【循环遍历数组】
for(let value of arr){
document.write(value+"<br/>");
}
5、 for in 循环 下标 / key / 键 【循环遍历对象】
for(let i in arr){
document.write(arr[i]+"<br/>");
}
6、 forEach() 数组方法 匿名回调函数 【循环遍历数组】
arr.forEach(function(value,index,oldarr){
document.write(index+"------"+value+"------"+oldarr+"<br/>");
});
7、 map() 数组方法,有返回值,返回了一个新的和老数组长度一定一致新数组,新数组有可能是二维数组
let newarr = arr.map(function(value,index,oldarr){
document.write(index+"---"+value+"----"+oldarr+"<br/>");
if(index == 0){
value = "123456";
}
return [value];
});
console.log(newarr);
8、flatMap() 数组方法,有返回值.返回了一个新的和老数组长度有可能不一致新数组,新数组一定是一维数组
let newarr = arr.flatMap(function(value,index,oldarr){
document.write(index+"---"+value+"----"+oldarr+"<br/>");
if(index == 0){
value = "123456";
}
return [value,index];
});
console.log(newarr);