vue 将数组对象某一个key值进行计算,如何再调用此计算的值

1,直接上代码

el: '#flip-list-demo',
data: {
    test:[],
    items11: [
        {number:1,name:'北京',money:8889},
        {number:2,name:'广东',money:8888},
        {number:3,name:'天津',money:8888},
    ],
    items12:[
        {number:4,name:'浙江',money:88888},
        {number:5,name:'新疆',money:88888},
        {number:6,name:'上海',money:88888},
        {number:7,name:'上海',money:88888},
        {number:8,name:'上海',money:88888},
        {number:9,name:'上海',money:88888},
        {number:10,name:'上海',money:88888},
        {number:11,name:'上海',money:88888},
    ],
    number: 'number',
    activeIndex: 0 ,

},
computed: {
    top : function(){
        return - this.activeIndex * 34 + 'px';
    },
    strip: function(){
        for(var i ; i < this.items11.length;i++){
            this.test.push(parseInt(this.items11.money[i]/1000+'%'));
        }
    }
},

如何将items11里面的所有money算出百分比,然后v-for的时候将所得到的百分比的值再赋值给html中盒子的width?

阅读 3.7k
3 个回答

我已经解决了,谢谢大家的回复,
跟后台交互数据后,最简单的方法就是

<div class="progress">
    <div class="progress-bar progress-bar-warning progress-bar-striped active" :style="{ width: parseFloat(item.money/items11[0].money) *80 +'%' }" >
    </div>
</div>

在计算后台传输过来的money值时要计算百分比,形成这样子的滚动条,所以“:style”很好的解决了每个item里面的数据如何变化的,只要数据变,视图就随之改变。
图片描述

可以在mounted生命周期里,循环items11,计算出百分比后push进test数组

计算属性:

computed:{
        calculate(){
            var tmp = this.$items11
            var total = 0
            tmp.forEach(item=>{
                total+=item.money
            })
            tmp.forEach((item,i)=>{
                item.percent = (item.money / total) * 100 + '%'
                tmp.push(item)
            })
            return tmp
        }
    }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题