【问题标题】:I Just want to reduce array of object into one object我只想将对象数组减少为一个对象
【发布时间】:2022-01-22 18:44:39
【问题描述】:

这是我的对象数组。

const [data, setData] = useState([
    { banner: "", intersitial: "", native: "", openVoice: "" },
    { banner: "", intersitial: "", native: "", openVoice: "" },
    { banner: "", intersitial: "", native: "", openVoice: "" },
]);

这也是我的提交方法

const handleSubmit = () => {
    const bannerData = data.map((ele) => {
      return ele.banner;
    });

    const nativeData = data.map((ele) => {
      return ele.native;
    });

    const intersitialData = data.map((ele) => {
      return ele.intersitial;
    });

    const openViaData = data.map((ele) => {
      return ele.openVoice;
    });

    const newData = {
      appId: id,
      banner: bannerData,
      intersitial: intersitialData,
      native: nativeData,
      openVia: openViaData,
    };
    axios
      .post(`${url}/ads/create-ads`, newData)
      .then((res) => {
        console.log("res", res);
      })
      .catch((err) => {
        console.log("error", err);
      });
  };

我使用了四个地图函数,然后数据传入单个对象。 基本上我想要1个reduce方法

【问题讨论】:

  • 来吧。请不要图像。取而代之的是文本并添加您的代码。
  • 请点击第一个和第二个链接 [这是我的对象数组] 谢谢
  • @ZeeshanAkram 请参阅此链接了解为什么不鼓励使用数据/代码图像:Why not upload images of code/errors when asking a question?
  • 不用担心 @NinaScholz 我已经发布了我的代码,谢谢
  • @NinaScholz 请检查一下我已经发布了一些代码。

标签: javascript arrays reactjs object reduce


【解决方案1】:

多合一reduce方法应该是这样的:

const handleSubmit = () => {
  const newData = data.reduce((prev, current) => ({
    ...prev,
    banner: [...prev.banner, current.banner],
    intersitial: [...prev.intersitial, current.intersitial],
    native: [...prev.native, current.native],
    openVia: [...prev.openVia, current.openVoice] 
  }), {
    appId: id,
    banner: [],
    intersitial: [],
    native: [],
    openVia: [],
  });

  axios
    .post(`${url}/ads/create-ads`, newData)
    .then((res) => {
      console.log("res", res);
    })
    .catch((err) => {
      console.log("error", err);
    });
};

您可以使用一些空数组传递初始值,并在 reduce 方法的每次迭代中填充它们。

Array.reduce usage and syntax here

【讨论】:

  • 感谢您的回答@crls_b。还有一件事我想将此对象反转为对象数组。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 2021-09-16
  • 1970-01-01
  • 2021-04-02
  • 2018-07-18
  • 2019-09-30
  • 2018-01-05
相关资源
最近更新 更多