我正在与ReactJS合作.我有一个如下所示的JSON对象:

[
  {
    "id": "1",
    "category": "cellphones",
    "name": "Xiaomi Redmi Note 10",
    "stock": "99",
    "price": "100",
    "quantity": "3"
  },
  {
    "id": "2",
    "category": "cellphones",
    "name": "Iphone 11",
    "stock": "3",
    "price": "1000",
    "quantity": "5"
  },
  {
    "id": "3",
    "category": "laptops",
    "name": "MSI GF65 Thin",
    "stock": "40",
    "price": "2000",
    "quantity": "2"
  }
]

我想通过这样做来获得这些项目的总体总数:

const getAllTotal = () => {
  const sum = cartItems.reduce(
    (prev, next) => prev.quantity * prev.price + next.quantity * next.price,
    0
  );
  console.log(sum);
  return sum;
};

问题是,每次我调用该函数时,控制台都返回NaN.

我首先认为这是由键的类型引起的,所以我try 将这些键包含在parseInt()方法中,但它返回相同的NaN.我做错了什么?

推荐答案

我认为您没有正确使用array.duce()方法.下面是正确的表格,试试这个:

const getAllTotal = () => {
  const sum = cartItems.reduce(
    (prev, next) => prev + next.quantity * next.price,
    0
  );
  console.log(sum);
  return sum;
};

请查看此链接以正确实现array.reduce()方法

Reactjs相关问答推荐

ReferenceError:未在Redux组件中定义窗口

react 下拉菜单任务

防止在Reaction中卸载

使用自动播放的视频组件呈现登录页面时出现JEST测试错误

如何使用TouchStart/TouchEnd在Table ReactJS中交换位置?

点击页脚链接时,如何更改ReactJS导航栏中的活动菜单项(样式为Tailwind CSS)?

MUI 日期 Select 器 - 最小日期混乱

生产部署:控制台中 Firebase 无效 api 密钥错误

在React中使用if条件时如何更改Tailwind中元素的文本 colored颜色

提前输入错误:选项类型上不存在属性名称

我可以在加载器函数中多次 fetch() 并使用一次 useloaderdata() 提取它吗?

损坏的图像 React useState

为什么 setState 在 React 中不是异步的?

@react-three/postprocessing 没有匹配的从 three.module.js 导出以导入WebGLMultisampleRenderTarget

如果传递给挂钩的数据需要事先修改,如何使用自定义挂钩?

React Router 6.4CreateBrowserRouter子元素不显示

使用 useRef(uuid()) 的目的是什么?

哪个 PrivateRouter 实现更好:高阶组件还是替换?

链接的音译 Gatsby JS

RTK 查询 POST 方法不会改变数据