push()
- 该方法可以向数组的末尾添加一个或多个元素,并返回数组的新长度。
- 可以将要添加的元素作为方法的参数传递,这样这些元素将会自动添加到数组的末尾。
- 该方法会将数组新的长度作为返回值返回
语法:数组.push(元素1,元素2...元素n);
var arr = [7,8,9];
arr.push(1,2,3);
pop()
该方法可以删除数组的最后一个元素,并将删除的元素作为返回值返回。
语法:数组.pop();
var arr = [7,8,9];
arr.pop();
unshift()
- 该方法可以向数组开头添加一个或多个元素,并返回新的数组长度
- 向前边插入元素后,其他的元素索引会依次调整
语法:数组.unshift(元素1,元素2...元素n);
var arr = [7,8,9];
arr.unshift(1,2,3)
shift()
该方法可以删除数组的第一个元素,并将删除的元素作为返回值返回。
语法:数组.shift();
var arr = [7,8,9];
arr.shift();
join()
- 该方法可以将数组中的所有元素连接为一个字符串
- 该方法不会对原数组产生影响,而是将转换后的字符串作为结果返回
- 在join()方法中可指定一个字符串作为参数,这个字符串会称为数组中元素的间隔符号
语法:数组.join("间隔符号");
var arr = [7,8,9];
var result = arr.join(",");
//间隔符号用于分隔数组的元素,如果不需要分隔则使用join("")即可
//可以加间隔符号也可以不加间隔符号,不加间隔符号则默认为,
concat()
- 该方法可以连接两个或者多个数组,并将新的数组返回
- 使用concat()方法不会对原数组产生影响
- 参数除了是数组,也可以是元素
语法:数组1.concat(数组2,数组3...数组n,元素1,元素2...元素n);
var arr = [1,2,3];
var arr1 = [2,3,4];
var result = arr.concat(arr1);
console.log(result);
sort()
- 该方法可以对数组元素进行排序
- 该方法会影响原数组,默认会按照Unicode编码进行排序
- 即使对于纯数字的数组,使用sort()排序时,也会按照Unicode编码进行排序,所以对数字进行排序时,可能会得到错误的结果
语法:数组.sort();
var arr = [4,9,3];
arr.sort();
console.log(arr);
可以通过在sort()中添加一个回调函数,来指定排序规则:
- 在回调函数中需要定义两个形参,浏览器会将数组中的元素作为实参去调用回调函数
- 使用哪个元素作为实参不确定,但肯定的是在数组中a一定在b前边
- 浏览器会根据回调函数的返回值来决定元素的顺序,如果返回一个大于0的值,则元素会交换位置;如果返回一个小于0的值,则元素位置不变;如果返回0,则认为这两个元素相等,也不交换位置
- 如果需要升序排序则返回a-b,如果需要降序排序则返回b-a
var arr = [2,5,1,6,9,3,7,4];
arr.sort(function.(a,b){
//升序排序
/*通过if语句进行大小判断
if(a>b)
{
return -1;
}else if(a<b)
{
return 1;
}else
{
return 0;
}
*/
//也可以直接进行判断,进行升序排序
return a-b
});
reverse()
- 该方法可以对数组元素进行倒序排序,即反转数组(前边的元素去后边,后边的元素来前边)
- 该方法会直接修改原数组
语法:数组.reverse();
var arr = [4,9,3];
arr.reverse();
slice()
- 该方法可以从已有的数组中返回选定的元素
- 该方法不会改变元素数组,而是将截取到的元素封装到一个新数组返回
- 参数:
- 截取开始的位置为索引,包含开始索引
- 截取结束的位置为索引,不包含结束索引
- 第二个参数可以省略不写,此时会截取从开始索引往后的所有元素
- 索引可以传递一个负值,如果传递一个负值,则从后往前计算
语法:数组.slice(start,end);
var arr = [4,3,9,7,6];
var result = arr.slice(0,3);
//选取索引为0到2的元素取出
var result2 = arr.slice(0,-2);
//选取索引为0到2的元素取出
console.log(result);
console.log(result2);
splice()
- 该方法可以删除数组中的指定元素,也可以向数组中添加新元素
- 使用splice()会影响到原数组,会将指定元素从原数组中删除,并将被删除的元素作为返回值返回;也会将新元素添加到原数组中
- 参数:
- 第一个表示开始位置的索引
- 第二个表示删除的数量
- 第三个及以后可以传递一些新的元素,这些元素会自动插入到开始位置索引前边
语法:数组.splice(start,end,元素1,元素2...元素n);
var arr = [4,3,9,7,6];
var result = arr.splice(0,3);
//选取从索引为0的元素开始的三个元素删除,并返回给result
var result2 = arr.splice(2,0,5,2,8);
//选取从索引为2的元素开始,不进行删除,将5,2,8三个元素插入到其前边
console.log(result);
数组去重练习
//创建一个数组
var arr = [1,2,3,2,1,3,4,2,5];
//去除数组中重复的数字
//创建一个数组
var arr = [1, 2, 3, 2, 1, 3, 4, 2, 5];
//去除数组中重复的数字
for (var i = 0; i < arr.length; i++,j++) {
//创建第一个循环,为数组中的每一个元素都进行一次数组遍历
//查找是否有相同的元素
for (var j = i+1; j < arr.length; j++) {
//创建第二个循环,寻找是否存在与索引为i的相同的元素
//遍历数组中的每一个除了i本身的元素,若有相同的元素则删除
if (arr[i] == arr[j])
{
arr.splice(j, 1);
}
}
}
console.log(arr);