a=[78,187,30]
b=[78,186,185,25,30]
c=[78,187,186,185,25,30] //想获得的结果
a=[1,2,3,4,5]
b=[1,6,7,8,3,9,5]
c=[1,2,6,7,8,3,4,9,5] //想获得的结果
a、b数组里面的值都是唯一的,怎么用js获得想要的值呢?
问了ChatGPT都没解决,它给的方法在控制台输出结果不一致,因为chatGPT的js环境不一样。
a=[78,187,30]
b=[78,186,185,25,30]
c=[78,187,186,185,25,30] //想获得的结果
a=[1,2,3,4,5]
b=[1,6,7,8,3,9,5]
c=[1,2,6,7,8,3,4,9,5] //想获得的结果
a、b数组里面的值都是唯一的,怎么用js获得想要的值呢?
问了ChatGPT都没解决,它给的方法在控制台输出结果不一致,因为chatGPT的js环境不一样。
function mergeArrays(a, b, c) {
let result = [];
for (let i = 0; i < b.length; i++) {
while (a[0] !== b[i]) {
result.push(a.shift());
}
while (c[0] !== b[i]) {
result.push(c.shift());
}
result.push(b[i]);
a.shift();
c.shift();
}
result = [...result, ...a, ...c];
return result;
}
let a = [1,2,3,4,5];
let b = [1,3,5];
let c = [1,6,7,8,3,9,5];
console.log(mergeArrays(a, b, c)); // 输出: [1,2,6,7,8,3,4,9,5]
var a=[78,187,30]
var b=[78,186,185,25,30]
a=[1,2,3,4,5]
b=[1,6,7,8,3,9,5]
let s = new Set();
let exchange = 0;
function judgeFun(arr1, arr2) {
for (let i=0; i<arr1.length; i++) {
if (!s.has(arr1[i])) {
if (arr2.includes(arr1[i])) {
s.add(arr1[i]);
if (exchange % 2 !== 0) {
exchange+=1;
judgeFun(arr2.slice(arr2.indexOf(arr1[i])), arr1.slice(i));
}
} else {
s.add(arr1[i]);
if (exchange % 2 === 0) {
exchange+=1;
judgeFun(arr2.slice(i), arr1.slice(i));
}
}
}
}
}
judgeFun(a, b);
console.log(Array.from(s));
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
解决方法: