最近在开发一个功能:后端返回的列表要求每一个数组元素后面加一个逗号,最后一个数组元素不加,该场景是用在表格中,鼠标移入某一个表格项,toast提示那一项的详细,下面是代码:

<!DOCTYPE html>
<html>

<head>
  <meta charset="utf-8">
  <title>js实现数组渲染时,在每个值后面加逗号,最后一个值不加</title>
  <!--引入 element-ui 的样式,-->
  <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
  <script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
  <!-- 引入element 的组件库-->
  <script src="https://unpkg.com/element-ui/lib/index.js"></script>
  <style>
    * {
      margin: 0;
      padding: 0;
    }

    #app {
      margin: 100px;
    }
  </style>
</head>

<body>
  <div id="app">
    <span v-for="(item, index) in arr" :key="index">{{item}}</span>
  </div>
  <script>
    new Vue({
      el: '#app',
      data() {
        return {
          // 模拟后端返回的数组
          arr: [
            "测试1",
            "测试2",
            "测试3",
            "测试4",
            "测试5"
          ],
        }
      },
      created() {
        this.arr = this.arr.map((item, index) => {
          // 最后一个值不加
          if (index !== this.arr.length - 1) {
            return item + ', '
          }
          return item
        })
        console.log(this.arr, 'arr')
      },
      methods: {

      }
    })
  </script>

</body>

</html>

效果:

主要原理就是利用map循环,给每一个item拼接一个逗号,但是需要在拼接前面加一个该item不是最后一个的判断,最后return改造后的item


我的一个道姑朋友
80 声望4 粉丝

星光不问赶路人,岁月不负有心人。