js中的数组方法和循环
一、函数
1、定义函数
function 函数名(参数1,参数2,… ) {
//JavaScript语句;
[return 返回值]
}
2、调用函数
事件名="函数名( )" ;
二、数组
1、概念
具有相同数据类型的一个或多个值的集合
2、创建数组
var 数组名称 = new Array(size);
new:表示数组的关键字
size:表示数组中可存放的元素总数
说明:JavaScript 中的数组用一个名称存储一系列的值,用下标区分数组中的每个值,数组的下标从0开始
3、数组赋值
(1)声明时赋值
var week= new Array ("星期日","星期一"……);
(2)分别赋值
var week= new Array ( 7);
week[0] = "星期日";
week[1] = "星期一 ";
week[2] = "星期二";
week[3] = "星期三";
……
4、访问数组元素
通过数组的名称和下标直接访问数组的元素
数组名[下标] //下标从0开始
三、数组常用方法和属性
类别 | 名称 | 说明 |
---|---|---|
属性 | length | 设置或返回数组中元素的数目 |
方法 | join( ) | 把数组的所有元素放入一个字符串,通过一个的分隔符进行分隔 |
方法 | sort() | 对数组排序 |
方法 | push() | 向数组末尾添加一个或更多 元素,并返回新的长度 |
方法 | pop() | 删除数组末尾元素 |
方法 | unshift() | 向数组头部添加元素 |
方法 | shift() | 删除数组头部元素 |
方法 | splice() | 删除数组中的元素(第一个参数为起始索引,第二个为删除数目 |
代码展示:
1、join()
let newstr=arr.join("+"); //使arr数组内的元素以+分割
2、push()
向数组末尾追加元素 push() 可以有参数
arr.push("Java"); //向数组arr末尾追加“Java”
3、pop()
删除数组末尾元素 pop()没有参数
arr.pop(); //删除arr末尾的元素
4、unshift()
向数组头部添加元素 unshift() 可以有参数
arr.unshift("Linux"); //向数组头部添加元素
5、shift()
删除数组头部元素
arr.shift();
6、splice
(1)删除任意位置元素 splice(起始下标,删除个数)
arr.splice(2,3); //在arr中下标为2的位置开始,删除三个元素
(2)替换任意位置元素 splice(起始下标,替换个数,“替换的数据”)
arr.splice(1,2,"GO","JAVA"); //在arr中下标为1的位置开始,替换2个元素,分别为GO、JAVA
(3)增加元素 splice(起始下标,增添个数,“增加的数据”)
arr.splice(1,2,"asa","sZx"); //在arr中下标为1的位置开始,添加2个元素,分别为asa、sZx
四、循环
1、循环的概念
循环就是在满足条件的情况下,去不断重复的执行某一个操作
2、循环的优势
- 解决重复操作
- 减少代码编写量,使代码结构清晰
- 增强代码的可读性
3、循环的分类
(1)for循环
适用环境:【已知条件,已知范围(先判断,后执行)】
for (初始部分; 循环条件; 条件迭代) {
//循环执行的语句
}
for(let i=0;i<arr.length;i++){
document.write(arr[i]+"</br>");
}
(2)while循环
适用环境:【未知条件,未知范围(先判断,后执行)】
//初始部分
while( 循环条件 ) {
//循环操作
//迭代部分
}
let i=0;
while(i<arr.length){
document.write(arr[i] +"</br>");
i++;
}
break语句:
- break语句用于终止某个循环,使程序跳到循环块外的下一条语句
- 在循环中位于break后的语句将不再执行
- break 语句不仅可以用在for循环中,也可以用在while循环中
continue语句:
- continue可用于for循环和while循环
- continue退出本次循环,继续后面的循环
- continue语句只能用在循环结构中
(3)do while 循环
适用环境:【至少执行一次(先执行,后判断】
let i = 0;
do {
document.write(arr[i]+"</br>");
}
while(i<arr.length);
(4)for of 循环
适用环境:【循环遍历数组的值】
for(let value of arr){
document.write(value+"</br>");
}
(5)for in 循环
适用环境:【循环遍历数组下标】 专用于遍历循环数组
for(let i in arr){
document.write(i+"</br>");
}
(6)forEach()
适用环境:只接收一个函数----匿名回调函数
array.forEach(function(value,index,olderr) { /* function内接收三个参数--------数组的值,数组的下标,原数组 */
.write(value+index,olderr);
});
(7)map() 数组方法
适用环境:有返回值,返回一个新的和老数组长度一定一致的新数组,更改数组内某个元素时,原先数组不会改变,而是复制一个新的数组
let newarr = arr.map(function (value, index, oldarr) {
document.write(index + "---" + value + "---" + oldarr + "<br/>")
if (index == 0) {
value = "123456";
}
return [value];
});
document.write(newarr)
console.log(newarr);
(8)flatMap() 数组方法
适用环境:有返回值
与map()的区别 flatMap()会对数组进行降维