Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 与NodeJS中的Array.reduce()相反_Javascript_Node.js_Google Sheets_Google Sheets Api - Fatal编程技术网

Javascript 与NodeJS中的Array.reduce()相反

Javascript 与NodeJS中的Array.reduce()相反,javascript,node.js,google-sheets,google-sheets-api,Javascript,Node.js,Google Sheets,Google Sheets Api,在我的示例中,我使用GoogleSheetAPI和NodeJS从工作表中获取数据 数据返回如第一张图片中所述,因此我创建了一个函数Transform(),将第一行转换为对象的属性,结果显示在第二张图片中 我的问题是,如何反向使用该函数,并在第一张图片中显示在大数组中的数据。 Transform = async (data, opt) => { const Objectproperties = ( await gsapi.spreadsheets.values.get(opt)

在我的示例中,我使用GoogleSheetAPI和NodeJS从工作表中获取数据

数据返回如第一张图片中所述,因此我创建了一个函数Transform(),将第一行转换为对象的属性,结果显示在第二张图片中

我的问题是,如何反向使用该函数,并在第一张图片中显示在大数组中的数据。

Transform = async (data, opt) => {
  const Objectproperties = (
    await gsapi.spreadsheets.values.get(opt)
  ).data.values[0].map((val) => val.replace(/\s/g, ""));
  const rows = data.filter((currentRow, index) => index != 0);
  const objects = rows.map((array) => {
    return array.reduce((accumulator, currentValue, index) => {
      return {
        ...accumulator,
        [Objectproperties[index]]: currentValue,
      };
    }, {});
  });

  app.use(
    "/items",
    router.get("/", function (req, res) {
      res.send(objects);
    })
  );

查看代码,reduce函数只是将数组转换为索引字典。因此,要反转它,只需提取字典值:

rows = objects.map((dict) => Object.values(dict))

两个图像都是相同的。将输入数据和预期的目标格式示例作为json放在这里。这些图像具有隐藏性差的个人详细信息。完全清除它们。更好的做法是创建一个包含假姓名、电子邮件和facebook URL的示例数据集。使用reduce,通常没有100%的方法来解包以前打包的内容。非常感谢,它工作得很好,非常感谢。您可能还想看看lodash库。它是一个用于函数编程和数据操作的通用工具箱。reduce实际上是在执行u.keyBy()函数-