如何在vuejs中获取索引和计数

how can get index & count in vuejs

我有code like this (JSFiddle)

  <li v-for="(itemObjKey, catalog) in catalogs">this index : {{itemObjKey}}</li>

输出:
这个指数:0
这个索引:1

我的问题是:

  1. 如何获取值索引首先开始:例如1
    我想要 像这样输出:
    这个索引:1
    这个索引:2

  2. 如何从索引中获取计数,即输出如下:
    此索引:1
    此索引:2
    此计数:2 字段

你可以只加 1

<li v-for="(catalog, itemObjKey) in catalogs">this index : {{itemObjKey + 1}}</li>

获取array/objects

的长度
{{ catalogs.length }}

或者,您可以只使用,

<li v-for="catalog, key in catalogs">this is index {{++key}}</li>

这工作得很好。

可选的 SECOND 参数是索引,从 0 开始。因此要输出名为 'some_list' 的数组的索引和总长度:

<div>Total Length: {{some_list.length}}</div>
<div v-for="(each, i) in some_list">
  {{i + 1}} : {{each}}
</div>

如果您循环访问的不是列表,而是对象,则第二个参数是 key/value 对的键。所以对于对象 'my_object':

var an_id = new Vue({
  el: '#an_id',
  data: {
    my_object: {
        one: 'valueA',
        two: 'valueB'
    }
  }
})

以下将打印出键:值对。 (你可以随意命名 'each' 和 'i')

<div id="an_id">
  <span v-for="(each, i) in my_object">
    {{i}} : {{each}}<br/>
  </span>
</div>

有关 Vue 列表渲染的更多信息:https://vuejs.org/v2/guide/list.html

使用 Vue 1.x,像这样使用特殊变量 $index

<li v-for="catalog in catalogs">this index : {{$index + 1}}</li>

或者,您可以为 v-for 指令指定别名作为 第一个参数 ,如下所示:

<li v-for="(itemObjKey, catalog) in catalogs">
    this index : {{itemObjKey + 1}}
</li>

参见:Vue 1.x guide

使用 Vue 2.x,v-for 提供了一个 第二个可选参数 引用当前项目的索引,你可以在你的小胡子里加 1之前看到的模板:

<li v-for="(catalog, itemObjKey) in catalogs">
    this index : {{itemObjKey + 1}}
</li>

参见:Vue 2.x guide

消除 v-for 语法中的括号也可以正常工作,因此:

<li v-for="catalog, itemObjKey in catalogs">
    this index : {{itemObjKey + 1}}
</li>

希望对您有所帮助。

Why its printing 0,1,2...?

因为那些是数组中项目的索引,索引总是从 0 开始到 array.length-1。

要打印项目计数而不是索引,请使用 index+1。像这样:

<li v-for="(catalog, index) in catalogs">this index : {{index + 1}}</li>

并显示总计数使用 array.length,像这样:

<p>Total Count: {{ catalogs.length }}</p>

根据DOC:

v-for also supports an optional second argument (not first) for the index of the current item.

如果您的数据是以下结构,您将得到字符串作为索引

items = {
   am:"Amharic",
   ar:"Arabic",
   az:"Azerbaijani",
   ba:"Bashkir",
   be:"Belarusian"
}

在这种情况下,您可以使用额外的变量来获取数字中的索引:

<ul>
  <li v-for="(item, key, index) in items">
    {{ item }} - {{ key }} - {{ index }}
  </li>
</ul>

来源:https://alligator.io/vuejs/iterating-v-for/

这可能是一个脏代码,但我认为它就足够了

<div v-for="(counter in counters">
{{ counter }}) {{ userlist[counter-1].name }}
</div>

在你的脚本中添加这个

data(){return {userlist: [],user_id: '',counters: 0,edit: false,}},