Javascript 与NodeJS中的Array.reduce()相反
在我的示例中,我使用GoogleSheetAPI和NodeJS从工作表中获取数据 数据返回如第一张图片中所述,因此我创建了一个函数Transform(),将第一行转换为对象的属性,结果显示在第二张图片中 我的问题是,如何反向使用该函数,并在第一张图片中显示在大数组中的数据。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)
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()函数-