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); // ['关羽', '张飞', "黄忠", "马超"]