【发布时间】:2022-01-26 08:15:10
【问题描述】:
为这个问题做了一个演示 -
数组 -
const arr1 = [
{
key: "daniel|21",
name: "daniel",
age: 21,
city: "NYC"
},
{
key: "kosta|28",
name: "kosta",
age: 28,
city: "NYC"
}
];
const arr2 = [
{
key: "daniel|21",
name: "daniel",
age: 21,
city: "TLV"
},
{
key: "simon|24",
name: "simon",
age: 24,
city: "NYC"
},
{
key: "david|22",
name: "david",
age: 22,
city: "NYC"
}
];
用于赋值的空数组 -
let arr1Match = [];
let arr1Unmatch = [];
let arr2Match = [];
let arr2Unmatch = [];
For循环-
for (let i = 0; i < arr1.length; i++) {
for (let j = 0; j < arr2.length; j++) {
const arr1Key = arr1[i].key;
const arr2Key = arr2[j].key;
if (arr1Key === arr2Key) {
arr1Match.push(arr1[i])
arr2Match.push(arr2[i])
} else {
arr1Unmatch.push(arr1[i])
arr2Unmatch.push(arr2[i])
}
}
}
我在输出什么 -
console.log(arr1Match);
console.log(arr1Unmatch);
console.log(arr2Match);
console.log(arr2Unmatch);
输出 -
arr1Match:[{ "key": "daniel|21", "name": "daniel", "age": 21, "city": "NYC" }]
arr1Unmatch:[{ "key": "daniel|21", "name": "daniel", "age": 21, "city": "NYC" }, { "key": "daniel|21", "name": "daniel", "age": 21, "city": "NYC" }, { "key": "kosta|28", "name": "kosta", "age": 28, "city": "NYC" }, { "key": "kosta|28", "name": "kosta", "age": 28, "city": "NYC" }, { "key": "kosta|28", "name": "kosta", "age": 28, "city": "NYC" }]
arr2Match: [{ "key": "daniel|21", "name": "daniel", "age": 21, "city": "TLV" }]
arr2Unmatch:[{ "key": "daniel|21", "name": "daniel", "age": 21, "city": "TLV" }, { "key": "daniel|21", "name": "daniel", "age": 21, "city": "TLV" }, { "key": "simon|24", "name": "simon", "age": 24, "city": "NYC" }, { "key": "simon|24", "name": "simon", "age": 24, "city": "NYC" }, { "key": "simon|24", "name": "simon", "age": 24, "city": "NYC" }]
想要的输出 -
arr1Match:[{ "key": "daniel|21", "name": "daniel", "age": 21, "city": "NYC" }]
arr1Unmatch:[{ "key": "kosta|28", "name": "kosta", "age": 28, "city": "NYC" }]
arr2Match:[{ "key": "daniel|21", "name": "daniel", "age": 21, "city": "TLV" }]
arr2Unmatch:[{ "key": "simon|24", "name": "simon", "age": 24, "city": "NYC" }, { "key": "david|22", "name": "david", "age": 22, "city": "NYC" }]
我需要循环遍历数组中的所有值并返回每个值的所有匹配项和不匹配项。
如果有匹配项,我需要将属性从 arr2 分配到 arr1
【问题讨论】:
-
@ikhvjs 我不好我会编辑我需要嵌套的 for 循环
-
@pilchard 我大错特错,编辑了我需要为每个 arr1 元素在 arr2 上运行的问题
标签: javascript arrays loops for-loop