搜索

首页  >  问答  >  正文

如果 Vue JS 中满足特定条件,如何对特定数组项进行编号?

假设我的 vue 状态中有一个如下所示的对象数组:

[
 {name: "Daniel", default: false},
 {name: "Ross", default: true},
 {name: "Rachel", default: false},
 {name: "Joey", default: false}
 {name: "Monica", default: true}
 {name: "Gunther", default: true}
]

在我的网页上,所有这些名称都已显示在列表中。我想在网页上显示的内容如下:

从上面的例子中,我认为我想要实现的目标非常清楚。在 vue 中实现此目的最简单的方法是什么?

P粉665427988P粉665427988324 天前546

全部回复(2)我来回复

  • P粉790187507

    P粉7901875072024-03-31 15:33:32

    尝试使用 compulated 属性。检查下面的代码片段

    var app = new Vue({
      el: '#app',
      data() {
        return {
          list: [
           {name: "Daniel", default: false},
           {name: "Ross", default: true},
           {name: "Rachel", default: false},
           {name: "Joey", default: false},
           {name: "Monica", default: true},
           {name: "Gunther", default: true},
          ]
        };
      },
      computed: {
        getList() {
          let index = 1;
          return this.list.map(item => {
            return item.default ? `${item.name} - Default ${index++}` : `${item.name}`;
          });
        }
      }
    })
    sssccc
    

    回复
    0
  • P粉491421413

    P粉4914214132024-03-31 14:41:07

    您可以使用 Array.map 迭代所有数组元素并生成您想要的结果

    const data = [
      { name: "Daniel" , default: false },
      { name: "Ross"   , default: true },
      { name: "Rachel" , default: false },
      { name: "Joey"   , default: false },
      { name: "Monica" , default: true },
      { name: "Gunther", default: true }
    ];
    
    let defaultCount = 0;
    const res = data.map(item => `${item.name}${item.default? ` default ${++defaultCount}`:''}`)
    
    console.log(res)

    回复
    0
  • 取消回复