【发布时间】:2019-03-26 09:34:07
【问题描述】:
我正在寻找一种基于公共值将对象合并到数组中的方法。我的解决方案应该是动态的,这给我带来了很多麻烦。 这是一个例子:
我有一个多维数组(参见下面的代码)。它包含一个名为“Währung”的列,其中包含数值。
0: {AGIMENDO Info Objekt 1: "00000000", Beschreibung Kurz: "Test0", Währung: "200.00", __rowNum__: 1}
1: {AGIMENDO Info Objekt 1: "00000001", Beschreibung Kurz: "Update1", Währung: "456.00", __rowNum__: 2}
2: {AGIMENDO Info Objekt 1: "00000002", Beschreibung Kurz: "Test2", Währung: "12.00", __rowNum__: 3}
3: {AGIMENDO Info Objekt 1: "00000003", Beschreibung Kurz: "Test3", Währung: "549153.00", __rowNum__: 4}
4: {AGIMENDO Info Objekt 1: "00000004", Beschreibung Kurz: "Text", Währung: "1.05", __rowNum__: 5}
5: {AGIMENDO Info Objekt 1: "00000005", Beschreibung Kurz: "13.08.11", Währung: "465.00", __rowNum__: 6}
6: {AGIMENDO Info Objekt 1: "00000006", Beschreibung Kurz: "Test21", Währung: "4594.00", __rowNum__: 7}
对于每一行,我遍历每个单元格并为每个包含数字/日期值的单元格分配一个“类型”。下面的代码显示了该数组。现在我想根据公共值合并这两个数组(第一个数组是“währung”,第二个数组是“值”)。我尝试使用 lodash _.map、_.assign 等,但我不明白我想要的输出。
0: {type: "number", value: "200.00"}
1: {type: "number", value: "456.00"}
2: {type: "number", value: "12.00"}
3: {type: "number", value: "549153.00"}
4: {type: "number", value: "1.05"}
5: {type: "date", value: "13.08.11"}
6: {type: "number", value: "465.00"}
我的目标输出看起来像这样(第一行):
> 0:
> AGIMENDO Info Objekt1: "00000000"
> Beschreibung Kurz: "Test0"
> Währung:
> Value : "200.00"
> Type: "number"
我如何做到这一点?
【问题讨论】:
-
请以文本形式添加数据,而不是图像。 - 以及你所尝试的。
-
@sonja 为什么不首先修改原始数组,而不是创建然后合并。
-
@Vishnudev 第一个数组由 excel 上传创建(使用 SheetJS)。该库提供了一个函数“sheet_to_json”,它从上传的 excel 文件创建第一个数组。所以不幸的是,我无法为该创作添加任何内容..
-
@sonja 只需创建 sheetjs 输出的复制变量并执行此操作
-
这两个数组的元素顺序是否相同?
标签: javascript arrays object multidimensional-array merge