如果 Vue JS 中满足特定条件,如何对特定数组项进行编号?
P粉665427988
P粉665427988 2024-03-30 16:33:24
0
2
518

假设我的 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}
]

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

  • Daniel
  • 罗斯 - 默认 1
  • 雷切尔
  • 乔伊
  • 莫妮卡 - 默认 2
  • 冈瑟 - 默认 3

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

P粉665427988
P粉665427988

全部回复(2)
P粉790187507

尝试使用 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
P粉491421413

您可以使用 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)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板