【发布时间】:2020-07-31 10:14:03
【问题描述】:
我有两个对象数组(array1,array2)。我正在尝试返回最终数组(如下所示),它消除了 array2 中的重复项,但不是 array1。我优先考虑array1。
array1 =[
{ phone: "07485454", name: "John" },
{ phone: "054554", name: "Ryan" },
]
array2 =[
{ phone: "2144564", name: "John" },
{ phone: "286456", name: "Mike" },
]
这是我想要的最终结果。仅从 array2 中删除重复项。 最终数组:
[
{ phone: "07485454", name: "John" },
{ phone: "054554", name: "Ryan" },
{ phone: "286456", name: "Mike" },
]
这是我尝试过的:
for(let i = 0; i < array1.length; i++) {
let name = array1[i].name;
for(let a = 0; i < array2.length; a++) {
let newname = array2[a].name;
if(name !== newname) {
array1.push(
{
phone: array2[a].phone,
name: array2[a].name
});
}
console.log(array1);
}
}
这是我得到的错误。
"errorType": "TypeError",
"errorMessage": "Cannot read property 'name' of undefined",
【问题讨论】:
-
嗨,首先:欢迎来到 Stackoverflow!如果你多写一些关于你已经尝试过的事情,那将是非常有帮助和伟大的:什么没用,你遇到了什么错误,你在哪里卡住了?现在,这个问题似乎是您要求其他人为您完成实施工作,这并不是堆栈溢出的真正目的。
-
@DavidLosert 道歉菜鸟错误
-
@DalalV 你的
for(let a = 0; i < array2.length; a++) {有一个轻微的错字。它应该使用a < array2.length。另外,您有几个逻辑错误,请尝试更新您的代码并调试正在发生的事情!
标签: javascript arrays object