请使用vue2语法写一个数组去重以及数组排序以及新增和删除功能
时间: 2024-02-27 21:57:14 浏览: 63
好的,以下是使用 vue2 语法实现数组去重、排序、新增和删除功能的示例代码:
```html
<template>
<div>
<h2>数组去重、排序、新增和删除</h2>
<div>
<label>新增元素:</label>
<input v-model="newItem" />
<button @click="addItem">新增</button>
</div>
<div>
<label>删除元素:</label>
<select v-model="selectedItem">
<option v-for="item in distinctItems" :value="item">{{ item }}</option>
</select>
<button @click="deleteItem">删除</button>
</div>
<div>
<label>排序方式:</label>
<select v-model="sortOrder">
<option value="asc">升序</option>
<option value="desc">降序</option>
</select>
<button @click="sortItems">排序</button>
</div>
<div>
<label>去重后的数组:</label>
<ul>
<li v-for="item in distinctItems">{{ item }}</li>
</ul>
</div>
</div>
</template>
<script>
export default {
data() {
return {
items: [2, 1, 3, 2, 4, 3, 5], // 初始数组
newItem: '', // 新增的元素
selectedItem: '', // 选择要删除的元素
sortOrder: 'asc' // 排序方式
}
},
computed: {
distinctItems() {
// 去重后的数组
return [...new Set(this.items)]
},
sortedItems() {
// 排序后的数组
return this.items.sort((a, b) => {
if (this.sortOrder === 'asc') {
return a - b
} else {
return b - a
}
})
}
},
methods: {
addItem() {
// 新增元素
if (this.newItem) {
this.items.push(this.newItem)
this.newItem = ''
}
},
deleteItem() {
// 删除元素
const index = this.items.indexOf(this.selectedItem)
if (index !== -1) {
this.items.splice(index, 1)
}
},
sortItems() {
// 排序元素
this.items = this.sortedItems
}
}
}
</script>
```
在上面的代码中,我们使用了 `v-model` 指令来绑定数据,通过计算属性 `distinctItems` 和 `sortedItems` 分别实现数组去重和排序功能,同时在 `methods` 中实现新增和删除元素的功能。
阅读全文