javascript獲取數(shù)組最后一個元素
- pop() 方法用于刪除并返回數(shù)組的最后一個元素。
var arr = new array("js", "javascript", "jquery");
var end = arr.pop();
console.log(end); // jquery
console.log(arr); // ["js", "javascript"]
pop() 方法將刪除 arrayobject 的最后一個元素灭美,把數(shù)組長度減 1魂角,并且返回它刪除的元素的值撬讽。如果數(shù)組已經(jīng)為空族展,則 pop() 不改變數(shù)組审葬,并返回 undefined 值深滚。
- 數(shù)組的 length 屬性,取最后一個元素
var arr = new array("js", "javascript", "jquery");
var end = arr[arr.length-1];
console.log(end); // jquery
- slice() 方法返回的是數(shù)組
var arr = new array("js", "javascript", "jquery");
var end = arr.slice(-1);
console.log(end); // ["jquery"]
slice() 方法可從已有的數(shù)組中返回選定的元素涣觉。
但是返回的數(shù)據(jù)類型是 array 不是 string 這點要注意一下痴荐!
擴展運算符
擴展運算符(...)是ES6的語法,用于取出參數(shù)對象的所有可遍歷屬性官册,然后拷貝到當(dāng)前對象之中生兆。
- 克隆對象
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);
如果用戶自定義的屬性,放在擴展運算符后面膝宁,則擴展運算符內(nèi)部的同名屬性會被覆蓋掉(后面覆蓋前面)鸦难。
- 變換變量的值
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相當(dāng)于data的別名
console.log(id, status, info);
- 由于數(shù)組是特殊的對象,所以對象的擴展運算符也可以用于數(shù)組员淫。
let foo = { ...['a', 'b', 'c'] };
console.log(foo); // {0: "a", 1: "b", 2: "c"}
- 將一個數(shù)組添加到另一個數(shù)組的尾部
let arr1 = [0, 1, 2];
let arr2 = [3, 4, 5];
arr1.push(...arr2);
- 合并數(shù)組
[...arr1, ...arr2, ...arr3] // [ 'a', 'b', 'c', 'd', 'e' ]
- 函數(shù)參數(shù)的析構(gòu)賦值
// 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 }) {
}
擴展運算符可用于數(shù)組和對象的拷貝合蔽。
delete 刪除對象屬性
let obj = { name: 'tom', age: 12 }
delete obj.name
console.log(obj) // {age: 12}