代码之家  ›  专栏  ›  技术社区  ›  abu abu

在vue.js迭代中打印密钥

  •  1
  • abu abu  · 技术社区  · 6 年前

    我有下面这样的数组

    data() {
      return {
        shoppingItems: [
          {name: 'apple', price: '10'},
          {name: 'orange', price: '12'}
        ]
      }
    }
    

    我试图重复如下

    <ul>
      <li v-for="item in shoppingItems">
        {{ item.name }} - {{ item.price }}
      </li>
    </ul>
    

    我得到的输出如下

    • 苹果-10
    • 橙色-12

    但我想得到如下输出

    • name-apple,price-10//i想动态打印密钥
    • 名称-橙色,价格-12
    3 回复  |  直到 6 年前
        1
  •  2
  •   Niklesh Raut    6 年前

    你可以用 (key,value) 配对 for

    var app = new Vue({
      el:'#app',
      data() {
      return {
        shoppingItems: [
          {name: 'apple', price: '10'},
          {name: 'orange', price: '12'}
        ]
      }
    }
    });
    li span{
      text-transform: capitalize;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.16/vue.js"></script>
    <div id="app">
    <ul>
      <li v-for="item in shoppingItems">
        <span v-for="(v,i,count) in item">{{i}} - {{v}}<span v-show="count<(Object.keys(item).length-1)
    ">, </span></span>
      </li>
    </ul>
    </div>
        2
  •  4
  •   Thoomas    6 年前

    您可以使用 this 以下内容:

    <div v-for="(value, key) in object">
      {{ key }} - {{ value }}
    </div>
    

    您还可以拥有当前密钥的索引:

    <div v-for="(value, key, index) in object">
      {{ key }} - {{ value }}
      // if index > 0, add comma
    </div>
    
        3
  •  0
  •   santanu bera    6 年前

    keys(object)返回一个包含该对象所有键的数组。现在可以使用index来获取desire键-

    <ul>
      <li v-for="item in shoppingItems">
        {{ Object.keys(item).indexOf(0) }} : {{ item.name }} - {{ Object.keys(item).indexOf(1) }} : {{ item.price }}
    </li>
    </ul>