JS中的数组方法
数组的属性:
1).告诉我们数组的长度:数组名.length
2).通过该属性可以改变数组的长度
let arr = [1,2,3,4]
console.log(arr.length)
//结果: 4
数组的方法:
1. join()
将数组以规定的符号整合成字符串,默认是逗号。该方法不改变原数组 。
let arr = [1,2,3];
console.log(arr.join()); // 1,2,3
console.log(arr.join("-")); // 1-2-3
console.log(arr); // [1, 2, 3](原数组不变)
2. push()
把里面的内容添加到数组末尾,并返回修改后的长度。
let arr = ["Banana", "Orange","Apple", "Mango"];
let fruits = arr.push("Kiwi");
console.log(fruits); // 返回值是新数组长度 5
3. pop()
从数组中删除最后一个元素,返回值是删除的元素:
let arr = ["Banana", "Orange","Apple", "Mango"];
let fruits = arr.pop();
console.log(fruits); // 返回值为 Mango
4. sort()
对数组排序
arr.sort(function(a,b){
//return a-b; //正序
return b-a; // 倒序
});
console.log(arr);
5. shift() 和 unshift()
shift() 删除原数组第一项,并返回删除元素的值;如果数组为空则返回undefined 。
unshift() 向数组头部添加元素 , 返回新数组的长度。
let arr = ["Lily","lucy","Tom"];
let count = arr.unshift("Jack","Sean");
console.log(count); // 5
console.log(arr); //["Jack", "Sean", "Lily", "lucy", "Tom"]
let item = arr.shift();
console.log(item); // Jack
console.log(arr); // ["Sean", "Lily", "lucy", "Tom"]
6. splice()
方法功能比较强大,可以实现对数组元素的删除、添加、替换。
删除数组的元素 ( 从下标2开始删除2项元素,并从下标2处插入元素 'Lemon','Kiwi' )
let arr = ["Banana", "Orange","Apple", "Mango"];
let fruits = arr.splice(2,2,'Lemon','Kiwi');
console.log(fruits); // 返回删除元素组成的数组 ["Apple", "Mango"]
console.log(arr) // ["Banana", "Orange", "Lemon", "Kiwi"]
向数组添加元素 ( 从下标2开始删除0项元素,并从下标2处插入元素 'Lemon','Kiwi' )
let arr = ["Banana", "Orange","Apple", "Mango"];
let fruits = arr.splice(2,0,'Lemon','Kiwi');
console.log(fruits); // 返回删除元素组成的数组 []
console.log(arr) // ["Banana", "Orange", "Lemon", "Kiwi", "Apple", "Mango"]
替换数组的元素 ( 从下标2开始删除1项元素,并从下标2处插入元素 'Lemon',其实和删除数组是同样的 )
let arr = ["Banana", "Orange","Apple", "Mango"];
let fruits = arr.splice(2,1,'Lemon');
console.log(fruits); // 返回删除元素组成的数组 ["Apple"]
console.log(arr) // ["Banana", "Orange", "Lemon", "Mango"]
7. split()
用于把一个字符串分割成字符串数组。
3、 将String以分隔符 转换为 Array(数组) split()
prompt网页输入框 然后赋予一个变量 在后台输出这个变量
let email = prompt("请输入邮箱");
console.log(email);
将这个字符串以@为分隔符分成两部分 然后赋予一个变量 然后分别输出下标0 和下标1
let emailarr = email.split("@");
console.log(emailarr);
document.write("账号是:"+emailarr[0]+"<br/>注册网站是"+emailarr[1]);
8. map()
数组方法,有返回值,返回了一个新的和老数组长度一致的新数组,新数组也可能是二维数组。
let newarr = arr.map(function(value,index,oldarr){
document.write(index+"---"+value+"---"---oldarr+"<br/>");
if(index == 0){
value = "7985"
}
return [value];
});
console.log(newarr);
9. flatMap()
/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);
10. indexOf()和 lastIndexOf()
indexOf():接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的开头(位置 0)开始向后查找。
书写格式:arr.indexof( 5 ) //查找从前往后第一个5
lastIndexOf:接收两个参数:要查找的项和(可选的)表示查找起点位置的索引。其中, 从数组的末尾开始向前查找。
书写格式:arr.lastIndexOf( 5,4 ) //查找从后往前第四项开始的第一个5
var arr = [1,3,5,7,7,5,3,1];
console.log(arr.indexOf(5)); //2
console.log(arr.lastIndexOf(5)); //5
console.log(arr.indexOf(5,2)); //2
console.log(arr.lastIndexOf(5,4)); //2
console.log(arr.indexOf("5")); //-1 找不到返回-1
数组的循环
循环的break与continue
break语句:
break语句用于终止某个循环,使程序跳到循环块外的下一条语句
在循环中位于break后的语句将不再执行
break 语句不仅可以用在for循环中,也可以用在while循环中
continue语句:
continue可用于for循环和while循环
continue退出本次循环,继续后面的循环
continue语句只能用在循环结构中
1. for循环 下标 / key / 键 【已知数据,已知条件(先判断,后执行)】
for (初始部分; 循环条件; 条件迭代) { //循环执行的语句 }
for(let i = 0;i < arr.length;i++){
document.write(arr[i]+"<br/>");
}
2. while循环 下标 / key / 键 【未知数据,未知条件(先判断,后执行)】
//初始部分
while( 循环条件 ) {
//循环操作
//迭代部分 }
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/>");
});