一、js中数组的构建方式
new Array(元素个数) Array(3)代表内部有三个数组,注意:在运行时,会根据内容的变化自动扩展或缩小。
new Array(元素值,元素值) 元素值是想要定义的数组内容以及元素个数。
[ ] 字面量创建数组。
<script>
// 定义数组的三种方式 new Array(元素个数) 会自动扩展。
let arr = new Array(3)
arr[0] = "今天星期一";
arr[1] = "今天星期五";
// new Array(元素值)
let arr = new Array("今天星期四","明天星期五");
//字面量 创建数组
let arr = ["今天星期四","明天星期五"];
</script>
二、js中的数组方法
flat() 对数组进行降维处理,得到一个新的数组,更高维数组时()内赋予降维次数;
push() 向数组末尾追加元素;
pop() 只能删除数组末尾的一个元素;
unshift() 在数组头部追加元素;
shift() 只能删除数组首位的一个元素 ;
splice() 删除任意位置元素 (删除位置,删除个数);
splice() 修改任意位置元素 (修改位置,修改个数,修改后的元素);
join() 将数组以指定字符转换为字符串;
sort() 数组排序;
concat() 合并数组;
length() 返回或者设置数组元素个数;
filter() 返回数组中满足条件的所有元素 【过滤器】;
find() 返回数组中满足条件的第一个元素;
findIndex() 返回数组中满足条件的第一个元素的下标;
includes() 判断数组中是否有满足条件的元素,有返回true,没有返回false;
every() 判断数组中的所有元素是否都满足条件,有返回true,没有返回false;&&;
some() 判断数组中的是否有元素满足条件,有返回true,没有返回false;||;
三、js中的循环
for() 循环 样式:for(初始值;循环条件;循环方式){输出}
while() 循环 样式:初始值 while(循环条件){输出; 循环方式}
do while() 循环 样式:初始值 do{输出; 循环方式} while(循环条件)
for (of) 循环 样式:for(数组内的元素/值 of 循环的数组){输出}
for (in) 循环 样式:for(数组下标 in 循环的数组){输出}
forEach() 数组方法 样式:循环的数组.forEach(function(值,下标,老数组){输出})
map() 数组方法 有返回值 样式:新定义数组 = 循环的数组.map(function(值,下标,老数组){输出 if(当下标为零时){数组值 = 新定义数组} return[数组值] })
flatMap() 数组方法 有返回值 样式:新定义数组 = 循环的数组.flatMap(function(值,下标,老数组){输出 if(当下标为零时){数组值 = 新定义数组} return[数组值] })
注意: for() 【已知条件,已知范围】 先判断,后执行;
while() 【未知条件,未知范围】 先判断,后执行;
do while() 【至少执行一次】 先执行,后判断;for (of) 值 / value / 元素 【循环遍历数组】;
for (in) 下标 / key / 键;forEach 数组方法 匿名回调函数 先接收值,后接收下标,oldarr表示原始数组 ;
map() 数组方法 有返回值,返回了一个新的和老数组长度一定一致的数组,新数组有可能是二维数组;
flatMap() 数组方法 有返回值,返回了一个新的和老数组长度有可能不一致的数组,新数组一定是一维数组。
//1. for() 【已知条件,已知范围】 先判断,后执行
for(i=0;i<arr.length;i++){
document.write(arr[i]+"<br/>");
}
//2. while() 【未知条件,未知范围】 先判断,后执行
let i = 0;
while(i<arr.length){
document.write(arr[i]+"<br/>");
i++;
}
//3. do while() 【至少执行一次】 先执行,后判断
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 数组方法 匿名回调函数 数组名.forEach(function(value,intex){} 【循环遍历数组】 先接收值,后接收下标,oldarr表示原始数组
arr.forEach(function(value,intex,oldarr){
document.write(intex+"----"+value+"----"+oldarr+"<br/>");
});
//7. map() 数组方法 有返回值,返回了一个新的和老数组长度一定一致的数组,新数组有可能是二维数组
let newarr = arr.map(function(value,intex,oldarr){
document.write(intex+"----"+value+"----"+oldarr+"<br/>");
if(intex == 0){
value = "new";
}
return [value]; // [value] 是二维数组 [value + intex] 数组长度不会增加
});
//8. flatMap() 数组方法 有返回值,返回了一个新的和老数组长度有可能不一致的数组,新数组一定是一维数组
let newarr = arr.flatMap(function(value,intex,oldarr){
document.write(intex+"----"+value+"----"+oldarr+"<br/>");
if(intex == 0){
value = "new";
}
return [value]; // [value] 还是一维数组 [value + intex] 数组长度增加
});
扩展:length 用来查看字符串的长度或数组的元素个数