带有数组元素的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逻辑条件的主要内容,如果未能解决你的问题,请参考以下文章
vue中的v-if指令判断某个元素满足多个条件的写法同时也适用于逻辑判断的代码中优雅的判断可用于vue的标签上
带有 ngSwitch 的条件按钮也带有来自异步管道数组的 ngFor
python基于组合逻辑判断替换numpy数组中的满足条件的元素相等判断替换numpy数组中的指定数值为另一个数值大小判断替换numpy数组中大于指定阈值的数值为另一个值