JavaScript Array对象详解(2)

['a', 'b', 'c'].lastIndexOf('a'); // => 0 ['a', 'b', 'c'].lastIndexOf('a', 1); // => 0 ['a', 'b', 'c'].lastIndexOf('d'); // => -1 [1, 2, 3].lastIndexOf('1'); // => -1 :采用的'==='匹配方式

2.8 map() :依次遍历并计算每个元素,返回计算好的元素的数组

参数:

①function(value,index,self){} :每个元素依次调用此函数,返回计算好的元素

  value :数组遍历的元素

  index :元素序号

  self :Array本身

返回值:

{Array} 一个包含就算好的元素的新的数组

示例:

[1, 2, 3].map(function (value, index, self) { return value * 2; }); // => [2, 4, 6]

2.9 pop() :移除并返回数组的最后一个元素

参数:无

返回值:

{Object} 数组的最后一个元素;若数组为空,返回undefined

示例:

var demoArray = ['a', 'b', 'c']; demoArray.pop(); // => c demoArray.pop(); // => b demoArray.pop(); // => a demoArray.pop(); // => undefined

2.10 push() :把元素添加到数组尾部

参数:

①value1,value2.....valueN :任意多个值添加到数组尾部

返回值:

{int} 数组新的长度

示例:

var demoArray = ['a', 'b', 'c']; demoArray.push('d'); // => 4, demoArray : ['a', 'b', 'c', 'd'] demoArray.push('e', 'f'); // => 6, demoArray :['a', 'b', 'c', 'd', 'e', 'f'] console.log(demoArray); // => ['a', 'b', 'c', 'd', 'e', 'f']

2.11 reverse() :反转数组元素的顺序

参数:无

返回值:无(在原数组内进行元素顺序反转)。

示例:

var demoArray = ['a', 'b', 'c', 'd', 'e']; demoArray.reverse(); console.log(demoArray); // => ["e", "d", "c", "b", "a"]

2.12 shift() :移除并返回数组的第一个元素

参数:无

返回值:

{Object} 数组的第一个元素;若数组为空,返回undefined。

示例:

var demoArray = ['a', 'b', 'c']; demoArray.shift(); // => a demoArray.shift(); // => b demoArray.shift(); // => c demoArray.shift(); // => undefined

2.13 slice(startIndex,endIndex) :返回数组的一部分

参数:

①startIndex :开始处的序号;若为负数,表示从尾部开始计算,-1代表最后一个元素,-2倒数第二个,依此类推。

②endIndex : 结束处的元素后一个序号,没指定就是结尾。截取的元素不包含此处序号的元素,结尾为此处序号的前一个元素。

返回值:

{Array} 一个新的数组,包含从startIndex到endIndex前一个元素的所有元素。

示例:

[1, 2, 3, 4, 5, 6].slice(); // => [1, 2, 3, 4, 5, 6] [1, 2, 3, 4, 5, 6].slice(1); // => [2, 3, 4, 5, 6] :从序号1开始截取 [1, 2, 3, 4, 5, 6].slice(0, 4); // => [1, 2, 3, 4] :截取序号0到序号3(序号4的前一个)的元素 [1, 2, 3, 4, 5, 6].slice(-2); // => [5, 6] :截取后面的2个元素

2.14 sort(opt_orderFunc) :按一定的规则进行排序

参数:

①opt_orderFunc(v1,v2) {Function}:可选的排序规则函数。若省略,将按照元素的字母进行从小到大排序。

  v1 :遍历时前面的元素。

  v2 :遍历时后面的元素。

排序规则:

比较v1和v2,返回一个数字来表示v1和v2的排序规则:

小于0 :v1小于v2,v1排在v2的前面。

等于0 :v1等于v2,v1排在v2的前面。

大于0 :v1大于v2,v1排在v2的后面。

返回值:无(在原先数组里进行排序操作)。

示例:

[1, 3, 5, 2, 4, 11, 22].sort(); // => [1, 11, 2, 22, 3, 4, 5] :这里都元素都被转换为字符,11的字符在2前 [1, 3, 5, 2, 4, 11, 22].sort(function (v1, v2) { return v1 - v2; }); // => [1, 2, 3, 4, 5, 11, 22] :从小到大排序 [1, 3, 5, 2, 4, 11, 22].sort(function (v1, v2) { return -(v1 - v2); //取反,就可以转换为 从大到小 }); // => [22, 11, 5, 4, 3, 2, 1]

2.15 splice() :插入、删除数组元素

参数:

①start {int} :开始插入、删除或替换的起始序号。

②deleteCount {int} :要删除元素的个数,从start处开始计算。

③value1,value2 ... valueN {Object} :可选参数,表示要插入的元素,从start处开始插入。若②参不为0,那么先执行删除操作,再执行插入操作。

返回值:

{Array}  返回一个包含删除元素的新的数组。若②参为0,表示没元素删除,返回一个空数组。

示例:

// 1.删除 var demoArray = ['a', 'b', 'c', 'd', 'e']; var demoArray2 = demoArray.splice(0, 2); // 删除从序号从0开始的2个元素,返回包含删除元素的数组:['a', 'b'] console.log(demoArray2); // => ['a', 'b'] console.log(demoArray); // => ['c', 'd', 'e'] // 2.插入 var demoArray = ['a', 'b', 'c', 'd', 'e']; var demoArray2 = demoArray.splice(0, 0, '1', '2', '3'); // ②参为0,返回空数组 console.log(demoArray2); // => [ ] console.log(demoArray); // => ['1', '2', '3', 'a', 'b', 'c', 'd', 'e'] // 3.先删除再插入 var demoArray = ['a', 'b', 'c', 'd', 'e']; // 当②参不为0,那么先执行删除操作(删除序号从0开始的4个元素,返回包含被删除元素的数组),再执行插入操作 var demoArray2 = demoArray.splice(0, 4, '1', '2', '3'); console.log(demoArray2); // => ['a', 'b', 'c', 'd'] console.log(demoArray); // => ['1', '2', '3', 'a', 'b', 'c', 'd', 'e']

2.16 toString() :将数组中所有元素通过一个英文逗号','拼接为一个字符串

参数:无

返回值:

{String}  数组中所有元素通过一个英文逗号','拼接为一个字符串,并返回。与调用无参join()方法一样。

示例:

[1, 2, 3, 4, 5].toString(); // => '1,2,3,4,5' ['a', 'b', 'c', 'd', 'e'].toString(); // => 'a,b,c,d,e'

2.17 unshift() :在数组头部插入元素

参数:

①value1,value2.....valueN :任意多个值添加到数组头部

返回值:

{int} 数组新的长度

示例:

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

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