javascript - 使用 v-for 反向循环数字范围?

标签 javascript for-loop vue.js

我有一个简单的 v-for 循环,它从 1 到 5 循环 5 次,但是我想从 5 到 1 反向循环?这可能吗?我正在向列表项添加一个类,我想从顶部开始从最满到最不满来填充列表项

添加 |反向不起作用

<div v-for="n in 5 | reverse" :key="n.index">
    <div class="container">
        <ul class="rating">
            <li :class="[ (n <= 5) ? 'fill' :'' ]"></li>
            <li :class="[ (n <= 4) ? 'fill' :'' ]"></li>
            <li :class="[ (n <= 3) ? 'fill' :'' ]"></li>
            <li :class="[ (n <= 2) ? 'fill' :'' ]"></li>
            <li :class="[ (n <= 1) ? 'fill' :'' ]"></li>
        </ul>
        <span>{{ n }}</span>
    </div>
</div>

最佳答案

数组过滤器在 v2 中不再有效。但是您可以创建自己的 reversed 方法。

"n in [...Array(5).keys()].slice().reverse()" 有效,所以:

Vue.config.productionTip = false;
Vue.config.devtools = false;

new Vue({
  el: '#app',
  methods: {
    reverseKeys(n) {
      return [...Array(n).keys()].slice().reverse()
    }
  }
})
.rating, .container {
  display: flex;
  list-style-type: none;
  margin: 0;
}
.rating li {
  width: 1rem;
  height: 1rem;
  border: 1px solid #ddd;
  border-radius: .5rem;
  margin: .1rem;
}
.fill {
  background-color: #eee;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<div id="app">
  <div v-for="n in reverseKeys(5)" :key="n">
      <div class="container">
          <span>{{ n + 1 }}</span>
          <ul class="rating">
              <li v-for="key in 5" :class="{ fill: key <= n + 1 }" :key="key" />
          </ul>
      </div>
  </div>
</div>

关于javascript - 使用 v-for 反向循环数字范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56469178/

相关文章:

javascript - Cordova InAppBrowser executeScript回调

javascript - 如何使用在 React 初始状态中声明的空数组?

java - 使用Java在Android中添加20个textView

java - 在处理中制作随机矩形

python - 根据 pandas 中的两个特征计算日期特征

javascript - Vue.js 显示从另一个组件调用一个组件

javascript - 用重复的线性渐变颜色填充 SVG 元素

javascript - 如何找出创建 bootstrap-material 的位置

node.js - 如何解决错误 gypgyp ERR!ERR!发现 VSfind VS msvs_version 未从命令行或 npm 配置设置?

vue.js - 从 nuxtjs 中的外部 js 文件访问存储