一、從Vue數組中刪除某個元素
Vue數組中刪除某個元素是比較簡單的,可以用splice()方法實現,但需注意每次刪除後都需要實時更新Vue視圖。
<template> <div> <p v-for="(item, index) in arr" :key="index"> {{ item }} <button @click="removeItem(index)">刪除</button> </p> </div> </template> <script> export default { data() { return { arr: [1, 2, 3, 4, 5, 6] } }, methods: { removeItem(index) { this.arr.splice(index, 1); } } } </script>
二、Vue刪除數組一項並更新
在Vue中通過刪除數組一項,需要及時更新視圖,可以使用Vue.$set()方法實現。實現過程為:先將要刪除的元素下標取出來,然後利用splice刪除,最後使用Vue.$set更新Vue視圖。
<template> <div> <p v-for="(item, index) in arr" :key="index"> {{item.name}} - {{item.age}} <button @click="removeItem(index)">刪除</button> </p> </div> </template> <script> export default { data() { return { arr: [{name: 'Tom', age: 18}, {name: 'Jerry', age: 20}, {name: 'Lucky', age: 22}] } }, methods: { removeItem(index) { this.arr.splice(index, 1); this.arr.forEach((item, i) => { this.$set(this.arr, i, item); }); } } } </script>
三、Vue刪除數組中的某個對象
假設數組中為對象數組,則刪除某個元素,則需要利用索引來刪除對象,具體實現方法與刪除數組元素相同。
<template> <div> <p v-for="(item, index) in arr" :key="index"> {{item.name}} - {{item.age}} <button @click="removeItem(index)">刪除</button> </p> </div> </template> <script> export default { data() { return { arr: [{name: 'Tom', age: 18}, {name: 'Jerry', age: 20}, {name: 'Lucky', age: 22}] } }, methods: { removeItem(index) { this.arr.splice(index, 1); this.arr.forEach((item, i) => { this.$set(this.arr, i, item); }); } } } </script>
四、Vue刪除數組元素的方法
除了splice()方法以外,還有pop()、shift()、 unshift()、slice()等方法可以刪除數組元素,需要根據具體業務需求選擇。
// 使用pop()刪除數組尾部元素 arr.pop(); // 使用shift()刪除數組頭部元素 arr.shift(); // 使用unshift()在數組頭部插入一項 arr.unshift(newElement); // 使用slice()截取指定區間內的元素 arr.slice(start, end);
五、Vue刪除數組中的一條數據
Vue中可以用filter()方法刪除數組中符合指定條件的元素,刪除之後通過$set()方法更新視圖。
<template> <div> <p v-for="(item, index) in arr" :key="index"> {{item.name}} - {{item.age}} <button @click="removeItem(item)">刪除</button> </p> </div> </template> <script> export default { data() { return { arr: [{name: 'Tom', age: 18}, {name: 'Jerry', age: 20}, {name: 'Lucky', age: 22}] } }, methods: { removeItem(item) { this.arr = this.arr.filter(elem => elem !== item); this.arr.forEach((item, i) => { this.$set(this.arr, i, item); }); } } } </script>
六、Vue刪除數組中的元素
除了使用splice()方法以外,還可以使用delete運算符或者Vue.delete()方法刪除數組中的元素。
// 使用delete運算符 delete arr[index]; // 使用Vue.delete()方法 Vue.delete(arr, index);
七、Vue刪除數組某一項
除了直接修改數組以外,還可以通過新建一個數組,將不需要刪除的元素添加進去,實現保留指定元素,刪除其他元素的效果。
<template> <div> <p v-for="(item, index) in newarr" :key="index"> {{item}} </p> </div> </template> <script> export default { data() { return { arr: [1, 2, 3, 4, 5, 6], index: 2, newarr: [] } }, mounted() { this.newarr = this.arr.filter((item, index) => index !== this.index); } } </script>
八、Vue刪除數組移除指定元素
與上述保留指定元素的方法相反,此處需要將指定元素以外的元素保留下來。
<template> <div> <p v-for="(item, index) in newarr" :key="index"> {{item}} </p> </div> </template> <script> export default { data() { return { arr: [1, 2, 3, 4, 5, 6], index: 2, newarr: [] } }, mounted() { this.newarr = this.arr.filter((item, index) => index === this.index); } } </script>
九、Vue刪除數組空白元素
空白元素指的是數組中的空值、null、undefined等。可以使用filter()方法將數組中的空白元素過濾出來。
<template> <div> <p v-for="(item, index) in newarr" :key="index"> {{item}} </p> </div> </template> <script> export default { data() { return { arr: [1, null, 3, undefined, 5, '', 7], newarr: [] } }, mounted() { this.newarr = this.arr.filter(item => item !== null && item !== undefined && item !== ''); } } </script>
總結
Vue中刪除數組元素的方法有很多種,主要包括splice()方法、pop()、shift()、unshift()、slice()等,需要根據具體業務需求來選擇。在刪除元素後,一定要注意即時更新Vue視圖。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/249611.html