Array对象中的部分方法shift()、sort()、slice()、splice()用法

shift()、sort()、slice()、splice() 用法及意义

shift()方法:

把数组的第一个元素删除,数组长度减1 无参数 返回被删元素的值

   var arr = ['关羽', '张飞', '赵云', '黄忠', '马超']
   var a = arr.shift()
   console.log(a);     // 关羽
   console.log(arr);   // ['张飞', '赵云', '黄忠', '马超']

sort()方法:

对数组的元素进行排序(该方法会改变原来的数组)

   var arr1 = [5, 3, 2, ,8, 6]
   var arr2 = [1, 5, 66, 22, 38]
   var arr3 = [11, 5, 66, 22, 3]
   // 单纯arr.sort() 只能对位数相同的数组进行排序
   console.log(arr1.sort()); // [2, 3, 5, 6, 8] 正常排序
   console.log(arr2.sort()); // [1, 22, 38, 5, 66]   出现异常
   console.log(arr3.sort()); //  [11, 22, 3, 5, 66]  异常
   arr2.sort(function (a, b) {
    
    
   		return a - b; // 升序
   })
   console.log(arr2);  // [1, 5, 22, 38, 66]

   arr3.sort(function (a, b) {
    
    
       return b - a; // 降序
   })
   console.log(arr3);  // [66, 22, 11, 5, 3]

slice(begin, end)方法:

slice(begin, end) 截取数组中的部分 返回被删除项目的新数组 且 原数组不变
begin:截取起始元素的索引 ; end:结束元素的位数

   var arr = ['关羽', '张飞', '赵云', '黄忠', '马超']
   // 无参数
   var a = arr.slice()	
   console.log(a);     // ['关羽', '张飞', '赵云', '黄忠', '马超']     若不给参数,则截取整个数组
   console.log(arr);   // ['关羽', '张飞', '赵云', '黄忠', '马超']     原数组不变

给一个参数 默认给begin

   var a = arr.slice(2)
   console.log(a);     // ["赵云", "黄忠", "马超"]     截取从该参数索引对应元素起的所有元素

给两个参数

   var a = arr.slice(2, 3)
   console.log(a);     // ["赵云"]
   
   var a = arr.slice(2, 2)
   console.log(a);     // []	参数begin >= end 时返回空数组 

splice()方法:

数组删除 splice(第几个开始,要删除个数) 返回被删除项目的新数组 注意,这个会影响原数组

   var arr = ['关羽', '张飞', '赵云', '黄忠', '马超']
   // 不给参数
   var a = arr.splice()
   console.log(a);     // []   返回空数组
   console.log(arr);   // ['关羽', '张飞', '赵云', '黄忠', '马超']     原数组没有被删除

给一个参数

   var a = arr.splice(2)
   console.log(a);		// ["赵云", "黄忠", "马超"]		// 返回该参数对应元素起的所有元素组成的新数组
   console.log(arr); 	// ['关羽', '张飞']     	// 被删除后的原数组

给两个参数

   var a = arr.splice(2, 1)
   console.log(a);     // ["赵云"]     
   console.log(arr);   // ['关羽', '张飞', "黄忠", "马超"]

猜你喜欢

转载自blog.csdn.net/m0_37825174/article/details/109060050