【发布时间】:2020-07-31 14:08:51
【问题描述】:
我有两种类型的数据结构
var dataA = [
{
"Employee Name": "Mr. X",
id: "1"
},
{
"Employee Name": "Mr. Y",
id: "2"
},
{
"Employee Name": "Mr. Z",
id: "3"
}
];
var dataB = [
{
id: "1",
"Portfolio Lead": "A"
},
{
id: "2",
"Portfolio Lead": "B"
},
{
id: "4",
"Portfolio Lead": "D"
}
];
现在我正在比较两个数组的id 值,并将"Portfolio Lead" 属性添加到dataA。
下面是代码,
function mergeTwoArray() {
dataA.forEach(row => {
dataB.forEach(lead => {
if (lead["id"] === row["id"]) {
row["Portfolio Lead"] = lead["Portfolio Lead"];
}
});
});
console.log(dataA);
}
问题是,
当id不匹配时,我需要将"Portfolio Lead"添加为#NA。如果我尝试添加 if 语句,所有对象都将 "Portfolio Lead" 添加为 #NA。
请告诉我我在这里做错了什么。
stackBlitz 链接https://stackblitz.com/edit/typescript-nypqge?file=index.ts
输出应该是
var dataA = [
{
"Employee Name": "Mr. X",
id: "1",
"Portfolio Lead": "A"
},
{
"Employee Name": "Mr. Y",
id: "2",
"Portfolio Lead": "B"
},
{
"Employee Name": "Mr. Z",
id: "3",
"Portfolio Lead": "#NA"
}
];
【问题讨论】:
-
你想要输出什么?你能描述更多吗?
-
更新了我的问题
标签: javascript arrays typescript for-loop object