javascript获取数组最后一个元素
- pop() 方法用于删除并返回数组的最后一个元素。
var arr = new array("js", "javascript", "jquery");
var end = arr.pop();
console.log(end); // jquery
console.log(arr); // ["js", "javascript"]
pop() 方法将删除 arrayobject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。
- 数组的 length 属性,取最后一个元素
var arr = new array("js", "javascript", "jquery");
var end = arr[arr.length-1];
console.log(end); // jquery
- slice() 方法返回的是数组
var arr = new array("js", "javascript", "jquery");
var end = arr.slice(-1);
console.log(end); // ["jquery"]
slice() 方法可从已有的数组中返回选定的元素。
但是返回的数据类型是 array 不是 string 这点要注意一下!
扩展运算符
扩展运算符(...)是ES6的语法,用于取出参数对象的所有可遍历属性,然后拷贝到当前对象之中。
- 克隆对象
let person = {name: "Amy", age: 15};
let someone = { ...person };
console.log(someone); // {name: "Amy", age: 15}
- 合并对象
let age = {age: 15}
let name = {name: "Amy"}
let person = {...age, ...name}
console.log(person); // {age: 15, name: "Amy"}
let ab = { ...a, ...b };
// 等同于
let ab = Object.assign({}, a, b);
如果用户自定义的属性,放在扩展运算符后面,则扩展运算符内部的同名属性会被覆盖掉(后面覆盖前面)。
- 变换变量的值
let x = 1;
let y = 2;
[x, y] = [y, x];
- 提取json
let jsonData = {
id: 42,
status: "OK",
data: [867, 5309]
};
let { id, status, data: info} = jsonData; // info相当于data的别名
console.log(id, status, info);
- 由于数组是特殊的对象,所以对象的扩展运算符也可以用于数组。
let foo = { ...['a', 'b', 'c'] };
console.log(foo); // {0: "a", 1: "b", 2: "c"}
- 将一个数组添加到另一个数组的尾部
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);
- 合并数组
[...arr1, ...arr2, ...arr3] // [ 'a', 'b', 'c', 'd', 'e' ]
- 函数参数的析构赋值
// bad
function getFullName(user) {
const firstName = user.firstName;
const lastName = user.lastName;
}
// good
function getFullName(obj) {
const { firstName, lastName } = obj;
}
// best
function getFullName({ firstName, lastName }) {
}
扩展运算符可用于数组和对象的拷贝。
delete 删除对象属性
let obj = { name: 'tom', age: 12 }
delete obj.name
console.log(obj) // {age: 12}