数组
数组的常用方法
- 使用
push()
方法可以向数组的末尾添加一个或多个元素,并返回数组新的长度。
可以将需要添加的元素作为参数传递,这些元素将会自动添加到数组的末尾。
// 创建一个数组
var arr = ["孙悟空", "猪八戒", "沙僧"];
// 可以将需要添加的元素作为参数传递
// 多个元素以逗号隔开
arr.push("唐僧", "白骨精", "蜘蛛精");
// 该方法会将数组新的长度返回
var result = arr.push("唐僧", "白骨精", "蜘蛛精");
console.log(result); // 6
- 使用
pop()
方法可以删除数组的最后一个元素,并返回删除的元素。
result = arr.pop();
console.log(result); // 蜘蛛精
- 使用
unshift()
方法可以向数组的开头插入一个或多个元素,并返回数组新的长度。
向开头插入元素以后,其他元素的索引会依次调整。
var result = arr.unshift("牛魔王", "二郎神");
console.log(result); // 8
- 使用
shift()
方法可以删除数组的第一个元素,并返回删除的元素。
var result = arr.shift();
console.log(result); // 牛魔王
- 使用
slice()
方法可以提取数组中的指定元素
参数:(左闭右开区间)相当于[begin,end)
- 截取开始位置的索引,包含开始索引
- 截取结束位置的索引,不包含结束索引
第2个参数省略则截取从开始位置到数组最后
- 如果传递一个负值,则从后往前计算,例如
-2
为倒数第2个元素
var result = arr.slice(2, 4); // 截取数组中从第3个到第5个元素
console.log(result); // 沙僧,唐僧
var result = arr.slice(3);
console.log(result); // 唐僧,白骨精,蜘蛛精
var result = arr.slice(1,-2);
console.log(result); // 猪八戒,沙僧,唐僧
- 使用
splice()
方法可以删除数组中的指定元素
会将指定元素从原数组中删除,并返回删除的元素。
参数:- 开始位置的索引
- 删除的数量
- 第三个及以后的参数会作为元素插入到开始位置索引之前
var result = arr.splice(3,2,"二郎神","武曲星君");
console.log(result); // 唐僧,白骨精
console.log(arr); // 孙悟空,猪八戒,沙僧,二郎神,武曲星君,蜘蛛精
- 使用
concat()
方法可以连接两个或多个数组,并返回新数组
不会修改原数组,新数组以返回值返回。
var newarr = arr1.concat(arr2);
var newarr = arr2.concat(arr3,arr4,"元素");
- 使用
join()
方法可以将数组转换为字符串
不会修改原数组,字符串以返回值返回。
可以指定一个字符串作为参数,该字符串将成为元素之间的连接符,默认是逗号作为连接符。
var arr_str = arr.join();
console.log(arr_str); // 孙悟空,猪八戒,沙僧,二郎神,武曲星君,蜘蛛精
console.log(typeof arr_str); // string
arr_str = arr.join("-");
console.log(arr_str); // 孙悟空-猪八戒-沙僧-二郎神-武曲星君-蜘蛛精
arr_str = arr.join("");
console.log(arr_str); // 孙悟空猪八戒沙僧二郎神武曲星君蜘蛛精
- 使用
reverse()
方法可以反转数组
直接修改原数组,颠倒整个数组。`
js
var arr = [1, 2, 3, 4, 5, 6];
arr.reverse();
console.log(arr); 6,5,4,3,2,1
- 使用`sort()`方法可以对数组元素进行排序
```js
// 对字符串排序,默认按照Unicode编码排序
var arr = ["b", "d", "e", "a", "c"];
arr.sort();
console.log(arr); // a,b,c,d,e
// 对数字排序,也会按照Unicode编码排序
var arr = [5, 11, 2, 4, 3, 1];
arr.sort();
console.log(arr); // 11,1,2,3,4,5
自定义排序规则,给sort()
添加一个回调函数来指定排序规则。
回调函数需要指定两个形式参数,两个形参分别代表了数组中的两个元素,第二个参数永远代表第一个参数之后的元素。
浏览器会根据回调函数的返回值来决定这两个元素的顺序:
若返回值大于0,则两个元素交换位置;
若返回值小于0,则元素位置不变;
若返回值等于0,则认为两元素相等。
var arr = [5, 11, 2, 4, 3, 1];
arr.sort(function(a, b){
/*
if(a > b){
return -1;
}else if(a < b){
return 1;
}else{
return 0;
}
*/
// 更加简洁的方法
return a - b; // 升序
//return b - a; 降序
});
console.log(arr); // 1,2,3,4,5,11
数组的遍历
使用循环遍历数组中的每一个元素
for(var i=0 ; i < arr.length ; i++) {
console.log(arr[i]);
}
使用forEach()
方法遍历数组
这个方法仅支持IE8以上的浏览器。
- 由我们创建但不由我们调用的函数,称为回调函数
例如下面这个匿名函数。
- 数组中有多少个元素函数就会执行多少次,每次执行时,浏览器会将遍历到的元素以实参的形式传递进来,我们可以定义形参来读取这些内容。
- 浏览器会在回调函数中传递三个参数:
- 当前正在遍历的元素
- 当前正在遍历的元素的索引
- 正在遍历的数组
arr.forEach(function(value, index, obj){
console.log(value);
});
如发现错误请联系我,谢谢你。
本文链接:http://ninefire.tk/JavaScript.basics/16.html