持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第3天,点击查看活动详情。
整理数组中常用的方法......
数组的遍历
var arr = [10, 20, 30, 40, 50];
for循环
for (var i=0; i<arr.length; i++) {
console.log(arr[i]); // 10 20 30 40 50
console.log(i); // 0 1 2 3 4
}
for in 循环
for (var i in arr) {
console.log(arr[i]); // 10 20 30 40 50
console.log(i); // 0 1 2 3 4
}
for of 循环
for (var ele of arr) {
console.log(ele); // 10 20 30 40 50
}
forEach
arr.forEach( (ele,index) => {
console.log(ele); // 10 20 30 40 50
console.log(index); // 0 1 2 3 4
});
push
- 作用:在数组的尾部追加数组元素
- 格式:
arr.push(value,value1, ...); - 返回值:数组新的长度
var arr = [10, 20, 30, 40, 50];
var res = arr.push(100);
console.log(res) // 6
console.log(arr) // [10, 20, 30, 40, 50, 100]
pop
- 作用:删除数组后面的一个元素
- 格式:
arr.pop(); - 返回值:被删除的元素
var arr = [10, 20, 30, 40, 50];
var res = arr.pop();
console.log(res); // 50
console.log(arr); // [10, 20, 30, 40]
unshift
- 作用:在数组的头部添加元素
- 格式:
arr.unshift(value, value1, ...); - 返回值:新的数组长度
var arr = [10, 20, 30, 40, 50];
var res = arr.unshift(100);
console.log(res); // 6
console.log(arr); // [100, 10, 20, 30, 40, 50]
shift
- 作用:删除数组的头部元素
- 格式:
arr.shift(); - 返回值:被删除元素
var arr = [10, 20, 30, 40, 50];
var res = arr.shift();
console.log(res); // 10
console.log(arr); // [20, 30, 40, 50]
join
- 作用:将数组转换为字符串
- 格式:
arr.join('分隔符'); - 分隔符规则:
- 1)可以省略,转换时数组元素用逗号进行分隔
- 2)可以指定分隔符,例如
arr.join('-'); - 3)如果不要分隔符,那么可以在小括号中设置空字符串作为参数
var arr = ['a', 'b', 'c', 'd', 'e'];
var str = arr.join();//默认用逗号作为分隔符
var str1 = arr.join('*');
var str2 = arr.join(''); //将数组元素拼接在一起,没有分隔符
console.log(str); // a,b,c,d,e
console.log(str1); // a*b*c*d*e
console.log(str2); // abcde
indexOf
- 作用:在数组中查找指定的值,如果有则返回其下标,如果没有则返回-1
- 注意:indexOf在操作时 是
从前向后查找,如果找到则停止查找 - 格式:数组名称.indexOf(要查找的值,查找的起始位置);如果省略起始位置则表示从头开始查找
var arr = [10, 20, 30, 40, 50, 60, 70, 80, 40, 100];
var res = arr.indexOf(40);
console.log(res); // 3
lastIndexOf
- 作用:在数组中查找指定的值,如果有则返回其下标,如果没有则返回-1
- 注意:lastIndexOf在操作时 是
从后向前查找,如果找到则停止查找 - 格式:数组名称.lastIndexOf(要查找的值,查找的起始位置);
var arr = [10, 20, 30, 40, 50, 60, 70, 80, 40, 100];
var res = arr.lastIndexOf(40);
console.log(res); // 8
slice
1.作用:从数组中截取出指定元素,并用这些元素组成新的数组
2. 格式:数组名称.slice(begin, end);
3. 参数说明:
- begin:表示截取的起始位置的下标
- end:表示截取的终止位置的下标
- 注意
- 1)截取时不包含end对应的值
- 2)可以省略end,表示从begin一直截取到最后
- 3)可以将begin和end都省略,表示对原有数组的复制
var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var res = arr.slice(2, 7); // 截取时不包含end对应的值
var res1 = arr.slice(2); // 省略end,表示从begin一直截取到最后
var res2 = arr.slice(); // begin和end都省略
console.log(res); // [3, 4, 5, 6, 7]
console.log(res1);// [3, 4, 5, 6, 7, 8, 9, 10]
console.log(res2);// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
splice
- 作用:可以对数组做增、删、改操作
- 格式:
- 增的格式:数组名称.splice(下标,0,value,value1, ...);
- 删的格式:数组名称.splice(下标,个数); 返回值为被删除元素形成的新的数组
- 改的格式:数组名称.splice(下标,个数,新的值);
// 在下标为2的位置新增一个15
var arr = [10, 20, 30, 40, 50];
var res = arr.splice(2, 0, 15, 100, 200);
console.log(arr) // [10, 20, 15, 100, 200, 30, 40, 50]
console.log(res) // []
// 删除数组中下标为2的元素
var arr = [10, 20, 30, 40, 50];
var res = arr.splice(2, 2);
console.log(arr) // [10, 20, 50]
console.log(res) // [30, 40]
// 将数组中下标为3的元素改为300
var arr = [10, 20, 30, 40, 50];
var res = arr.splice(3,1, 300);
console.log(arr) // [10, 20, 30, 300, 50]
console.log(res) // [40]