【发布时间】:2019-07-11 11:43:03
【问题描述】:
我们如何合并和加入这段代码的键值(javascript 或 undescore 或 lodash)。
数组数据:
[[
{
"Product": "Men's Cut and Sewn",
"Monday": 13,
"Tuesday": 1.29,
"Thursday": 10,
"Friday": 2,
"Saturday": 2.1,
"Sunday": 12
},
{
"Product": "Men's Inner",
"Monday": 10,
"Tuesday": 1.29,
"Wednesday ": 2.6,
"Thursday": 4.9,
"Friday": 2,
"Saturday": 20,
"Sunday": 12
}
],
[
{
"Product": "Men's Cut and Sewn",
"Monday": 10,
"Tuesday": 45,
"Wednesday": 45,
"Thursday": 23,
"Friday": 2,
"Saturday": 3,
"Sunday": 2
},
{
"Product": "Men's Inner",
"Monday": 1,
"Tuesday": 1,
"Thursday": 34,
"Friday": 5,
"Saturday": 34,
"Sunday": 34
}
]]
预期数据:
[{
{
"Product": "Men's Cut and Sewn",
"Monday": 23,
"Tuesday": 2.58,
"Wednesday": 45,
"Thursday": 33,
"Friday": 4,
"Saturday": 5.1,
"Sunday": 14
},
{
"Product": "Men's Inner",
"Monday": 11,
"Tuesday": 2.29,
"Wednesday ": 2.6,
"Thursday": 38.9,
"Friday": 7,
"Saturday": 54,
"Sunday": 46
}
}]
我尝试了这个 JavaScript 代码
var finalArr = [];
for (var i = 0; i < arr.length - 1; i++) {
if (i < arr.length - 1 && finalArr.length > 0) {
var arr1 = finalArr;
var arr2 = arr[i]
} else {
var arr1 = arr[i];
var arr2 = arr[i + 1];
}
for (let obj1 of arr1) {
var sampleObj = {};
for (let obj2 of arr2) {
if (obj1.Product === obj2.Product) {
sampleObj.Product = obj1.Product;
for (let day in obj1) {
if (day !== 'Product') {
sampleObj[day] = parseInt(obj1[day] + obj2[day]);
}
}
}
}
finalArr.push(sampleObj);
}
}
它可以是 n 个数组,如果没有找到相同产品的某个数组也需要添加键(一个数组没有“星期一”键,但在第二个数组中具有相同产品的“星期一”键则需要加入两个星期一值)。
this.url = ['assets/sample-dataset.xlsx', 'assets/sheet2.xlsx'];
this.jsonData = XLSX.utils.sheet_to_json(worksheet, { raw: true });
两张表两个数组数据。无法将这些多个数组合并为一个数组。 jsonData 给定了两个带有上图的数组。需要合并成一个数组[[array1],[array2]]
【问题讨论】:
-
如果您从“这就是我尝试过的”以及任何调试细节开始,这个问题就不会这么快就结束了,您将有机会获得帮助。否则,看起来您希望 Stackoverflow 成为免费的代码编写服务
-
产品名称相同。 @RenéDatenschutz
标签: javascript underscore.js lodash