new Vue({ el: '#app', data: { arr: [{ id: 0, second: 60 }, { id: 1, second: 80 }, { id: 2, second: 1280 }], }, mounted() { this.initFun(); }, methods: { initFun() { for (let i in this.arr) { this.$set(this.arr[i], 'content', ''); //要显示的内容 this.$set(this.arr[i], 'time', null); //计时器对象 let time = setInterval(() => { this.secondsFormat(this.arr[i].second--, i); //倒计时 }, 1000) this.$set(this.arr[i], 'time', time) } }, secondsFormat(s, key) { if (s < 1) { //清空计时器 clearInterval(this.arr[key].time) } var day = Math.floor(s / (24 * 3600)); // Math.floor()向下取整 var hour = Math.floor((s - day * 24 * 3600) / 3600); var minute = Math.floor((s - day * 24 * 3600 - hour * 3600) / 60); var second = s - day * 24 * 3600 - hour * 3600 - minute * 60; let str = day + "天" + hour + "时" + minute + "分" + second + "秒"; this.$set(this.arr[key], 'content', str) }, } })