迟早要知道的JS系列之常用数组方法 (3)

实例:

var sports = ["soccer", "baseball"]; var total = sports.push("football", "swimming"); console.log(sports); // ["soccer", "baseball", "football", "swimming"] console.log(total); 4.shift()

** 语法:**
arr.shift()

**返回值 **
从数组中删除第一个元素,并返回该元素的值。此方法更改数组的长度。如果数组为空则返回undefined

实例:

let myFish = ['angel', 'clown', 'mandarin', 'surgeon']; console.log('调用 shift 之前: ' + myFish); // "调用 shift 之前: angel,clown,mandarin,surgeon" var shifted = myFish.shift(); console.log('调用 shift 之后: ' + myFish); // "调用 shift 之后: clown,mandarin,surgeon" console.log('被删除的元素: ' + shifted); // "被删除的元素: angel" 5.unshift()

** 语法:**
arr.unshift(element1, ..., elementN)

参数:
elementN
要添加到数组开头的元素或多个元素。

返回值 **
将一个或多个元素添加到数组的开头,并
返回该数组的新长度**(该方法修改原有数组)。当一个对象调用该方法时,返回其 length 属性值。

实例:

let arr = [1, 2]; arr.unshift(0); // result of the call is 3, which is the new array length // arr is [0, 1, 2] arr.unshift(-2, -1); // the new array length is 5 // arr is [-2, -1, 0, 1, 2] arr.unshift([-4, -3]); // the new array length is 6 // arr is [[-4, -3], -2, -1, 0, 1, 2] arr.unshift([-7, -6], [-5]); // the new array length is 8 // arr is [ [-7, -6], [-5], [-4, -3], -2, -1, 0, 1, 2 ] 6.reverse()

** 语法:**
arr.reverse()

**返回值 **
颠倒后的数组。 将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。

实例:

const array1 = ['one', 'two', 'three']; console.log('array1:', array1); // expected output: "array1:" Array ["one", "two", "three"] const reversed = array1.reverse(); console.log('reversed:', reversed); // expected output: "reversed:" Array ["three", "two", "one"] // Careful: reverse is destructive -- it changes the original array. console.log('array1:', array1); // expected output: "array1:" Array ["three", "two", "one"] 7.sort()

** 语法:**
arr.sort(function(a,b){....})

参数
function(){}可选
用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的Unicode位点进行排序。

a
第一个用于比较的元素。

b
第二个用于比较的元素。

如果指明了 compareFunction(即function(a,b)) ,那么数组会按照调用该函数的返回值排序。即 a 和 b 是两个将要被比较的元素:

如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前;

如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变。备注: ECMAScript 标准并不保证这一行为,而且也不是所有浏览器都会遵守(例如 Mozilla 在 2003 年之前的版本);

如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前。

compareFunction(a, b) 必须总是对相同的输入返回相同的比较结果,否则排序的结果将是不确定的。

**返回值 **
用原地算法对数组的元素进行排序,并返回数组。默认排序顺序是在将元素转换为字符串,然后比较它们的UTF-16代码单元值序列时构建的

//比较函数格式如下 function compare(a, b) { if (a < b ) { // 按某种排序标准进行比较, a 小于 b return -1; } if (a > b ) { return 1; } // a must be equal to b return 0; }

实例:

var numbers = [4, 2, 5, 1, 3]; numbers.sort(function(a, b) { return a - b; }); console.log(numbers); 也可以写成: var numbers = [4, 2, 5, 1, 3]; numbers.sort((a, b) => a - b); console.log(numbers); // [1, 2, 3, 4, 5]

参考:
https://developer.mozilla.org/zh-CN/

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwggsp.html