javascript - 我对 `data.filter` 做错了什么

标签 javascript angular typescript

我尝试使用 data.filter() 过滤数据,因为我需要找到不等于 0 的元素,直到这里过滤正确的数据方式:

代码

 this.tax = data.filter((item) =>item.value_tax != 0)
                .map((item) => +item.value_tax )
                .reduce((acc, obj) => acc +
               (
                  (((Number(obj.cost) * Number(obj.quantity)) - ((Number(obj.cost) * Number(obj.quantity) * Number(obj.discount)) / 100)) * Number(obj.calculate_tax))
               ) 
               -
               (
                  (((Number(obj.cost) * Number(obj.quantity)) - (Number(obj.cost) * Number(obj.quantity) * Number(obj.discount)) / 100))
               ),
              0);
    console.log("Tax: ", this.tax)

结果控制台

Tax:  
(3) […]
​
0: Object { id_factura_pivote: "1", cantidad_factura_pivote: "3", fecha_factura_pivote: "2018-09-14", … }
​
1: Object { id_factura_pivote: "5", cantidad_factura_pivote: "20", fecha_factura_pivote: "2018-09-14", … }
​
2: Object { id_factura_pivote: "6", cantidad_factura_pivote: "1", fecha_factura_pivote: "2018-09-19", … }
​
length: 3

在我的例子中,我有4个元素,只有3个与0不同,但它只带来或显示data的数据,而不是我想要的计算显示给用户。应该注意的是,如果我不使用 data.filterdata.map 它会给我带来正确的数据,但它需要 4 个元素(意外结果),因为我只想要 3(在本例中)或与 0 不同的元素。

最佳答案

语法不正确。这些逗号没有做任何事情,所以你的控制台基本上只返回 filter 的结果。 。这些方法需要链接起来。

data.filter((item) =>item.value_tax != 0)
           .map((item) => +item.value_tax )
           .reduce((acc, obj) => acc +
           (
              (((Number(obj.cost) * Number(obj.quantity)) - ((Number(obj.cost) * Number(obj.quantity) * Number(obj.discount)) / 100)) * Number(obj.calculate_tax))
           ) 
           -
           (
              (((Number(obj.cost) * Number(obj.quantity)) - (Number(obj.cost) * Number(obj.quantity) * Number(obj.discount)) / 100))
           ),

即使如此,如何将数组中的项目映射为数字,然后尝试访问 obj.cost 仍然存在问题。和obj.quantity 。您想通过映射实现什么目的?

关于javascript - 我对 `data.filter` 做错了什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52409985/

相关文章:

javascript - 动态创建脚本时还需要 "script.type=' text/javascript吗?

javascript - 无法使用 react 代码分隔表的行

Angular 11 - 验证 for 循环中生成的子表单

javascript - PhpStorm 2019.2 : Material UI components requiring props which are not required

javascript - 如何在 Angular Reactive Form 的嵌套数组字段中构建字段数组?

javascript - 如何重构以下代码以使用 q?

javascript - 使整个页面可拖动

angular - 如何获取父组件和子组件的表单值?

Angular 如何编写模板驱动表单的跨字段验证指令

javascript - typescript :有条件地将对象属性标记为可选?