option长度是不确定的,我需要根据option长度来生成selectdearr
时间: 2024-02-18 22:00:04 浏览: 58
好的,如果选项的长度是动态的,你可以在 Vue 实例的 `mounted` 钩子函数中初始化 `selectedArr` 数组,根据选项的长度来生成对应长度的数组。代码如下:
```vue
<template>
<div>
<div v-for="(option, index) in options" :key="index" @click="toggleSelected(index)" :class="{ 'selected': selectedArr[index] }">
{{ option }}
</div>
</div>
</template>
<script>
export default {
data() {
return {
options: ['Option 1', 'Option 2', 'Option 3', 'Option 4'],
selectedArr: [],
};
},
mounted() {
// 根据选项长度初始化 selectedArr 数组
this.selectedArr = new Array(this.options.length).fill(0);
},
methods: {
toggleSelected(index) {
if (this.selectedArr[index] === 1) {
// 如果已经选中,就将其从选中状态数组中删除
this.$set(this.selectedArr, index, 0);
} else {
// 如果没有选中,就将其加入到选中状态数组中
this.$set(this.selectedArr, index, 1);
}
},
},
};
</script>
```
在上述代码中,我们在 Vue 实例的 `data` 中将 `selectedArr` 数组初始化为空数组,然后在 `mounted` 钩子函数中根据选项的长度生成对应长度的数组,并用 0 填充。在 `toggleSelected` 方法中,我们同样使用 `$set` 方法来更新 `selectedArr` 数组中对应位置的值。最后,我们就可以使用 `selectedArr` 数组来匹配选项的 id 了。
阅读全文