带有数组元素的Vue Js逻辑条件

Posted

技术标签:

【中文标题】带有数组元素的Vue Js逻辑条件【英文标题】:VueJs logical conditons with array elements 【发布时间】:2021-07-01 19:54:32 【问题描述】:

我的数据函数中有一个数组,我想计算数组中有错误记录的数字的总和。但我需要在计算部分执行此操作,但我在仅计算错误数组时遇到了问题。如何设置逻辑参数。

Array1: [
                Text1: "Some text in an array 1", Numbers: Math.floor(Math.random() * 50), B1: true,
                Text2: "Some text in an array 2", Numbers: Math.floor(Math.random() * 50), B1: true,
                Text3: "Some text in an array 3", Numbers: Math.floor(Math.random() * 50), B1: true,
                Text4: "Some text in an array 4", Numbers: Math.floor(Math.random() * 50), B1: true,
                Text5: "Some text in an array 5", Numbers: Math.floor(Math.random() * 50), B1: true,
                Text6: "Some text in an array 6", Numbers: Math.floor(Math.random() * 50), B1: false,
                Text7: "Some text in an array 7", Numbers: Math.floor(Math.random() * 50), B1: false,
                Text10: "Some text in an array 8", Numbers: Math.floor(Math.random() * 50), B1: false,
                Text8: "Some text in an array 9", Numbers: Math.floor(Math.random() * 50), B1: false,
                Text9: "Some text in an array 10", Numbers: Math.floor(Math.random() * 50), B1: false,
            ],
            sum: 0
computed:
    sumOfNumbers()
        return this.Array1.reduce((sum, numbers) =>
            return sum += numbers.Numbers;
        , 0)
    ,
    sumOfFalse()
        if(Array1[iii].B1 = 'false')
            return this.Array1.reduce((sum, numbers) =>
                return sum += numbers.Numbers;
            , 0)
        
    ,
,

【问题讨论】:

【参考方案1】:

要获取所有具有虚假B1 值的数组项,请使用Array.prototype.filter

const falsyB1Items = this.Array1.filter(item => !item.B1)

那么你可以减少这些项目:

return falsyB1Items.reduce((sum, numbers) => sum += numbers.Numbers, 0)

demo

【讨论】:

【参考方案2】:

你可以通过这样的一个函数来做到这一点:

computed: 
    sumOfNumbers() 
        this.Array1.map(obj => 
            if (obj.B1 === false) 
                this.sum += obj.Numbers; // The sum is stored in the 'sum' var
            
        );
        return this.sum;
    

它是否按照您想要的方式工作?

【讨论】:

以上是关于带有数组元素的Vue Js逻辑条件的主要内容,如果未能解决你的问题,请参考以下文章

JS对象数组多条件排序

vue中的v-if指令判断某个元素满足多个条件的写法同时也适用于逻辑判断的代码中优雅的判断可用于vue的标签上

vue简单逻辑判断

带有 ngSwitch 的条件按钮也带有来自异步管道数组的 ngFor

python基于组合逻辑判断替换numpy数组中的满足条件的元素相等判断替换numpy数组中的指定数值为另一个数值大小判断替换numpy数组中大于指定阈值的数值为另一个值

Vue3js:如何准确地循环数组 5 次并有条件地检查里面的元素?