Vue 中的對象 map 是一種非常有用的數據結構,它可以將一個對象轉化成一個新的對象,同時還可以通過回調函數對新對象的屬性值進行處理。在 Vue 中,map 可以用于計算屬性、watcher 和組件的渲染函數等場景中。
const obj = {
name: 'alice',
age: 18,
gender: 'female'
}
// 使用 map 轉化 obj
const newObj = Vue.util.map(obj, (key, value) =>{
return {
key: key,
value: `${value}-new`
}
})
/*
newObj 的值為:
[
{ key: 'name', value: 'alice-new' },
{ key: 'age', value: '18-new' },
{ key: 'gender', value: 'female-new' }
]
*/
上面的例子說明了 map 的基本使用方法。Vue 的 map 函數接收兩個參數,第一個參數是待轉換的對象,第二個參數是一個回調函數。回調函數接收兩個參數,分別是對象的鍵和值。在回調函數中,通過返回一個包含新鍵值對的對象,即可把原對象轉化成一個新對象。
在 Vue 中,map 可以用于計算屬性中。在下面的例子中,我們使用 map 將一個數組轉化成了一個新數組。該計算屬性返回的是新數組中所有元素的和。
- {{ item }}
sum: {{ sum }}
在上面的例子中,既然我們已經可以在計算屬性中使用 map,那么當然也可以在渲染函數中使用它啦。下面的例子中,我們加載了一個列表,并且在每個列表項后面渲染出一個新的縮略語(如把 'University' 轉化成 'Univ.')。
- {{ item }}{{ abbreviationMap[item] }}
完美!現在我們已經介紹了 Vue 中的對象 map,學會了如何使用它,以及它可以用于哪些場景。希望這篇文章可以對你有所幫助!
下一篇jq項目嵌套vue