Vue - check if you are on the last prop of a v-for loop

Here is one way.

<span v-for="(val,key,index) of person">
  key: {{key}}, val: {{val}}, index: {{index}}
  <span v-if="index != Object.keys(person).length - 1">, </span>
</span>

Here's a solution if you're looping through an array, rather than an object:

<div id="app">
  <div v-for="(item, index) in items">
    <div v-if="index == items.length - 1">yes</div>
    {{ item }}, {{ index }}
  </div>
</div>

You can do that with a computed to see if the current index (third parameter forv-if) is the last property:

computed: {
  last(){
     return Object.keys(this.person).length-1;
  }
}

Then in your v-for:

<span v-for="(val, key, index) in person">{{key}}: {{val}}<span v-if="index !== last">, </span> </span>

Here's the JSFiddle: https://jsfiddle.net/wv2ujxvn/


You can also "cheat" by inserting the comma before each item, as it's easier to check for the first item (index !== 0).

<span v-for="(val, key, index) in person">
  <span v-if="index !== 0">, </span>
  {{key}}: {{val}}
</span>

Tags:

Vue.Js

V For