來源:https://www.w3cplus.com/javascript/javascript-tips.html
1、使用...
運算符合並對象或數組中的對象
同樣使用ES的...
運算符可以替代人工操作,合並對象或者合並數組中的對象。
// 合並對象 const obj1 = { name: '大漠', url: 'w3cplus.com' } const obj2 = { name: 'airen', age: 30 } const mergingObj = {...obj1, ...obj2} > Result: {name: "airen", url: "w3cplus.com", age: 30} // 合並數組中的對象 const array = [ { name: '大漠', email: 'w3cplus@gmail.com' }, { name: 'Airen', email: 'airen@gmail.com' } ] const result = array.reduce((accumulator, item) => { return { ...accumulator, [item.name]: item.email } }, {}) > Result: {大漠: "w3cplus@gmail.com", Airen: "airen@gmail.com"}
2、有條件的添加對象屬性
不再需要根據一個條件創建兩個不同的對象,以使它具有特定的屬性。為此,使用...
操作符是最簡單的。
const getUser = (emailIncluded) => { return { name: '大漠', blog: 'w3cplus', ...emailIncluded && {email: 'w3cplus@hotmail.com'} } } const user = getUser(true) console.log(user) > Result: {name: "大漠", blog: "w3cplus", email: "w3cplus@hotmail.com"} const userWithoutEmail = getUser(false) console.log(userWithoutEmail) > Result: {name: "大漠", blog: "w3cplus"}