以下的方法,reverse()、sort()、splice()、push()、pop()、unshift()、shift()会改变原数组,其他的不会;
1.join()
--将数组中所有元素转化为字符串连接在一起,返回最后生成的字符串,如果没有参数就默认使用逗号分隔;
2.reverse()
--将数组中的元素颠倒顺序,返回逆序的数组;
3.sort()
--将数组中的元素排序并返回排序后的数组,不带参数时按照字母表顺序排序;
如果数组包含undefined,会被排到尾部;
如果让sort()方法不按照字母表排序,则需要传递一个比较函数:
var arr = [111, 22, 33];
arr.sort(); //
[111, 22, 33]
arr.sort(function(a, b) { // [22, 33, 111]
return a - b;
});
4.concat()
--创建并返回一个新数组,连接调用数组和参数成为一个新数组;
如果参数中有本身就是数组的,这并没有什么影响,因为连接的只是它的元素,不管是不是数组;
但是数组中的数组就会直接连接;
var arr = [1, 2, 3];
arr.concat([4], 5); // [1, 2, 3, 4, 5]
arr.concat([4, [5]], 6); // [1, 2, 3, 4, [5], 6]
5.slice()
--返回一个调用数组的一个子数组;
返回的数组包含第一个参数指定的位置但不包括第二个参数指定的位置;
如果只有一个参数,则返回的数组就是这个参数指定的位置到调用数组结束;
如果参数是负数,则表示的是从调用数组最后一个元素开始,比如-1表示最后一个元素,-2表示倒数第二个元素;
6.splice()
--在数组中插入、删除元素的通用方法;
只有一个参数时,删除从这个参数指定位置开始到结束的元素并返回删除的元素组成的数组;
有两个参数时,第一个参数指定起始位置,第二个参数指定从起始位置开始要删除的元素个数,返回删除元素组成的数组;
有三个参数时,第三个参数及其之后的参数都是要插入的元素,从第一个参数指定位置开始插入;
7.push()和pop()
--将数组当做栈;
push(参数),将参数元素推入数组末尾,返回新数组的长度;
pop(),将数组末尾元素删除,返回删除的值;
8.unshift()和shift()
unshifit(参数),数组头部添加参数元素,返回新数组的长度;不管参数有多少,都是一次性插入(就是说在数组中的顺序和参数列表的顺序一样),如果逐个插入的话顺序就是反的;
shift(),将数组头部元素删除,返回删除的元素
9.toString()和toLocaleString()
toString(),将每个元素转化为字符串,输出用逗号分隔的字符串列表,如果数组元素是数组,那么只会输出它的元素,不会以数组的形式输出;
toLocaleString(),是toString()方法的本地版本;