Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js 将对象值求和_Vue.js_Vuetify.js - Fatal编程技术网

Vue.js 将对象值求和

Vue.js 将对象值求和,vue.js,vuetify.js,Vue.js,Vuetify.js,我有一个目标,我需要对结果求和。 例如,我有2个数组,每个数组有4个对象。 我需要对范围在400和700之间的对象的结果求和。 我想排除范围测试[700-800]的结果 最后,我需要把所有这些结果加在变量结果中 新Vue{ el:“应用程序”, vuetify:新的vuetify, 资料{ 返回{ 名单:[ {结果:1.205281224980167,检验范围:[400500]}, {结果:1.3752106835385345,检验范围:[500600]}, {结果:1.955824674225

我有一个目标,我需要对结果求和。 例如,我有2个数组,每个数组有4个对象。 我需要对范围在400和700之间的对象的结果求和。 我想排除范围测试[700-800]的结果

最后,我需要把所有这些结果加在变量结果中

新Vue{ el:“应用程序”, vuetify:新的vuetify, 资料{ 返回{ 名单:[ {结果:1.205281224980167,检验范围:[400500]}, {结果:1.3752106835385345,检验范围:[500600]}, {结果:1.955824674225325,检验范围:[600700]}, {结果:0.6175274642830954,检验范围:[700800]}, {结果:0.6327715359706052,检验范围:[400500]}, {结果:0.721984345620436,检验范围:[500600]}, {结果:1.026806173906662,检验范围:[600700]}, {结果:0.32420135150190965,检验范围:[700800]}, ], }; }, 计算:{ 检验结果{ 返回null; }, }, };
您需要为计算创建一个计算属性:

请参阅下面的代码:

新Vue{ el:“应用程序”, vuetify:新的vuetify, 资料{ 返回{ 名单:[ {结果:1.205281224980167,检验范围:[400500]}, {结果:1.3752106835385345,检验范围:[500600]}, {结果:1.955824674225325,检验范围:[600700]}, {结果:0.6175274642830954,检验范围:[700800]}, {结果:0.6327715359706052,检验范围:[400500]}, {结果:0.721984345620436,检验范围:[500600]}, {结果:1.026806173906662,检验范围:[600700]}, {结果:0.32420135150190965,检验范围:[700800]}, ], }; }, 计算:{ 检验结果{ 设结果=0; 对于此列表的let项{ 设不正确范围=item.range_of_test.filterrange=>range<400 | | range>700; 如果incorrectRange.length==0{ 结果+=项目结果; } } 返回结果; }, }, }; PS:我更正了你代码中的一些内容

回答你的问题: 如果只想求[400500]或[700800]范围的和,可以这样做:

... 计算:{ 检验结果{ 设结果=0; 对于此列表的let项{ 设[first,second]=item.range\u of_test; 如果 第一个==400和第二个==500|| 第一个==700和第二个==800 { 结果+=项目结果; } } 返回结果; } } ...
您需要为计算创建一个计算属性:

请参阅下面的代码:

新Vue{ el:“应用程序”, vuetify:新的vuetify, 资料{ 返回{ 名单:[ {结果:1.205281224980167,检验范围:[400500]}, {结果:1.3752106835385345,检验范围:[500600]}, {结果:1.955824674225325,检验范围:[600700]}, {结果:0.6175274642830954,检验范围:[700800]}, {结果:0.6327715359706052,检验范围:[400500]}, {结果:0.721984345620436,检验范围:[500600]}, {结果:1.026806173906662,检验范围:[600700]}, {结果:0.32420135150190965,检验范围:[700800]}, ], }; }, 计算:{ 检验结果{ 设结果=0; 对于此列表的let项{ 设不正确范围=item.range_of_test.filterrange=>range<400 | | range>700; 如果incorrectRange.length==0{ 结果+=项目结果; } } 返回结果; }, }, }; PS:我更正了你代码中的一些内容

回答你的问题: 如果只想求[400500]或[700800]范围的和,可以这样做:

... 计算:{ 检验结果{ 设结果=0; 对于此列表的let项{ 设[first,second]=item.range\u of_test; 如果 第一个==400和第二个==500|| 第一个==700和第二个==800 { 结果+=项目结果; } } 返回结果; } } ...
已创建计算属性,如:

  computed: {
    result_of_test() {
        return this.list.reduce((currentValue, item) => {
           if((item.range_of_test[0] >= 400 && item.range_of_test[1] <= 800) && !(item.range_of_test[0] >= 700 && item.range_of_test[1] <= 800)){
              return currentValue + item.result
           }
        return currentValue;
    }, 0)
  }

已创建计算属性,如:

  computed: {
    result_of_test() {
        return this.list.reduce((currentValue, item) => {
           if((item.range_of_test[0] >= 400 && item.range_of_test[1] <= 800) && !(item.range_of_test[0] >= 700 && item.range_of_test[1] <= 800)){
              return currentValue + item.result
           }
        return currentValue;
    }, 0)
  }

很好,你能告诉我怎么做才能得到[400,500]或[700,800]范围的和吗?是的,是可能的。我更新我的答案。这就是你想要的。这个答案解决了你的问题吗?请接受这个答案,这将帮助其他人。很好,你能告诉我怎么做才能得到[400,500]或[700,800]范围的和吗[700800}?是的,是可能的。我更新了我的答案。这就是你想要的?这个答案解决了你的问题吗?请接受这个答案,这将帮助其他人。