JavaScript中数组常用的方法总结

sort() 对数组中的元素进行排序,返回排序后的数组

sort()对数组元素进行排序,并返回排序后的数组。
参数:可选,规定排序方式的比较函数
默认情况下sort()方法没有传比较函数作为参数的话,默认按字母升序,如果不是元素不是字母形式的字符串的话,会调用toString()方法将元素转化为字符串的Unicode(编码)位点,然后再比较字符。

比较函数会包含两个参数,这两个参数就是数组中要进行比较的两个元素a和b

array.sort(function (a, b) {
    return a - b;  // 或者return b - a;
});

根据比较函数的返回值来确定数组的排序方式:
1.如果比较函数返回值 < 0,那么a在前,b在后;
2.如果比较函数返回值 = 0,那么a和b的相对位置不变;
3.如果比较函数返回值 > 0,那么b在前,a在后。

var array = [1, 10, 5, 43, 1, 4];
array.sort(function(a, b) {
    return a - b;
});  //  [1, 1, 4, 5, 10, 43]
array.sort(function(a, b) {
    return b - a;
});  //  [43, 10, 5, 4, 1, 1]

pop() 删除数组中的最后一个元素,返回删除的这个元素

var a = [1, 2, 3, 4];
var res = a.pop();  // res为4
console.log(a);  // [1, 2, 3]

shift() 删除数组中的第一个元素,返回删除的这个元素

var a = [1, 2, 3, 4];
var res = a.shift();  // res为1
console.log(res);  // [2, 3, 4]

push() 向数组的末尾添加一个或多个元素,并返回新的长度

var a = [1, 230, 304];
var res = a.push(20);  // 4
console.log(a);  // [1, 230, 304, 20]

unshift() 向数组的开头添加一个或多个元素,并返回新的长度

var a = [1, 230, 304];
var res = a.unshift('20');  // 4
console.log(res);  // ["20", 1, 230, 304]

slice(begin, end)返回一个从index为begin开始到index为end结束(不包括结束)选择的数组的一部分浅拷贝到一个新数组对象,且原数组不会被修改

var a = [1, 32, 34, 42, 2, 4, 42];
var res = a.slice(2, 4);
res  // [34, 42]
a  // [1, 32, 34, 42, 2, 4, 42]

join() 用于把数组中的所有元素通过指定的分隔符(默认使用逗号)进行分隔放入一个字符串,返回生成的字符串

var a = ['hello', 'world'];
var res = a.join();
res  // "hello,world"
a  // ["hello", "world"]
var res = a.join('*');
res  // "hello*world"
a  // ["hello", "world"]

indexOf() 找到给定元素在数组中的索引,返回下标index,查找不到就返回-1

var a = ['hello', 'world', 'hello', 'hhh']
var res = a.indexOf('hello');
res  // 0
a  // ["hello", "world", "hello", "hhh"]
var res = a.indexOf('hello', 1);
res  // 2

includes() 查找数组是否包含某个元素,返回布尔

var a = ['hello', 'world'];
a.includes('hello');  // true
a.includes('hello2');  // false

splice() 从指定位置/索引处删除指定数量的元素,还可以在删除之后的位置加上其他元素

arr.splice(5, 3);  // 表示从arr数组的索引为5的位置开始,删除三个元素
arr.splice(5, 0, 2, 3, 4);  // 从arr数组索引为5的位置开始,不删除元素,
索引为5的位置依次插入234

猜你喜欢

转载自blog.csdn.net/phoebe_16/article/details/80535669