对于数组操作的每一个方法我们要关注以下三个特性
push()
在数组的末尾添加一个元素
// 原数组
var arr = [132, 645, 561];
// 执行pop()方法, value <== 返回值
var value = arr.push(789);
// 执行后打印 -- 原数组
console.log(arr); // [132, 645, 561, 789]
// 执行后打印 -- 返回值
console.log(value); // 4
pop()
在数组的末尾删除一个元素
// 原数组
var arr = [132, 645, 561];
// 执行pop()方法, value <== 返回值
var value = arr.pop();
// 执行后打印 -- 原数组
console.log(arr); // [132, 645]
// 执行后打印 -- 返回值
console.log(value); // 561
unshift()
在数组的首部添加一个元素
// 原数组
var arr = [132, 645, 561];
// 执行unshift()方法, value <== 返回值
var value = arr.unshift(789);
// 执行后打印 -- 原数组
console.log(arr); // [789, 132, 645, 561]
// 执行后打印 -- 返回值
console.log(value); // 4
console.log(value === arr.length); // true
shift()
在数组的首部删除一个元素
// 原数组
var arr = [132, 645, 561];
// 执行push()方法, value <== 返回值
var value = arr.push(789);
// 执行后打印 -- 原数组
console.log(arr); // [561, 789]
// 执行后打印 -- 返回值
console.log(value); // 132
slice()
截取数组的元素
参数与解释
参数可能性
// 原数组
var arr = ["CSS", "JavaScript", "Vue", "React", "Nodejs"];
// 1. start < end
console.log(arr.slice(2, 4)); // 新数组 -- ["Vue", "React"]
// 2. start > end
console.log(arr.slice(2, 1)); // []
// 3. end 为负值
console.log(arr.slice(2, -2)); // 新数组 -- ["Vue"]
// 4. start 和 end 都为负值
console.log(arr.slice(-3, -1)); // 新数组 -- ["Vue", "React"]
// 5. 只有一个 正值 参数(start)
console.log(arr.slice(3)); // 新数组 -- ["React", "Nodejs"]
// 6. 只有一个 负值 参数(start)
console.log(arr.slice(-3)); // 新数组 -- ["Vue", "React", "Nodejs"]
// 执行所有截取操作后,打印 -- 原数组
console.log(arr); // 原数组 -- ["CSS", "JavaScript", "Vue", "React", "Nodejs"]
splice()
截取、删除、替换、增加数组元素
参数解释
参数可能性
* splice(2, 2) => start > 0,有 length,常用方法
* splice(-3, 2) => start < 0,有 length
* splice(2) => start > 0,没有 length
* splice(-2) => start < 0,没有 length
* splice(2, 0, "jQuery", "Angular") => 在索引值为 2 的位置插入后面的元素
* splice(2, 1, "TypeScripy", "Electron") => 从索引值 2 开始,删除 1 个元素,然后在这个位置插入后面的元素
// 原数组
var arr = ["CSS", "JavaScript", "Vue", "React", "Nodejs"];
// 删除、截取
// 打印返回值
console.log(arr.splice(2, 2)); // ["Vue", "React"]
// 打印被删除后的原数组
console.log(arr); // ["CSS", "JavaScript", "Nodejs"]
console.log(arr.splice(-3, 2)); // ["Vue", "React"]
console.log(arr); // ["CSS", "JavaScript", "Nodejs"]
console.log(arr.splice(2)); // ["Vue", "React", "Nodejs"]
console.log(arr); // ["CSS", "JavaScript"]
console.log(arr.splice(-2)); // ["React", "Nodejs"]
console.log(arr); // ["CSS", "JavaScript", "Vue"]
// 增添
console.log(arr.splice(2, 0, "jQuery", "Angular")); // []
console.log(arr); // ["CSS", "JavaScript", "jQuery", "Angular", "Vue", "React", "Nodejs"]
// 删除
console.log(arr.splice(2, 1, "TypeScripy", "Electron")); // ["Vue"]
console.log(arr); // ["CSS", "JavaScript", "TypeScripy", "Electron", "React", "Nodejs"]