Javascript 嵌套数组未返回正确的数据
我正在尝试嵌套数组,你能帮我循环吗,代码没有优化,我需要一些指导。 我有2个数组,没有得到预期的结果Javascript 嵌套数组未返回正确的数据,javascript,arrays,sorting,Javascript,Arrays,Sorting,我正在尝试嵌套数组,你能帮我循环吗,代码没有优化,我需要一些指导。 我有2个数组,没有得到预期的结果 let arr1 = ['a','b','c','d','e']; let arr2 = ['b','e','f']; var temp = arr2 for(i =0; i< arr1.length; i++){ for(j=0; j<arr2.length; j++){ var flag = false; if(arr1[i] === arr2
let arr1 = ['a','b','c','d','e'];
let arr2 = ['b','e','f'];
var temp = arr2
for(i =0; i< arr1.length; i++){
for(j=0; j<arr2.length; j++){
var flag = false;
if(arr1[i] === arr2[j]){
flag = true;
}
if(arr2.length -1 === j){
if(flag == false){
temp.push(arr1[i])
}
if( arr1.length - 1 == i){
console.log(temp)
}
}
}
}
arr1中不存在的元件应推送到arr2元件。
我为初学者的代码道歉。我还在学习。谢谢。如果使用array.forEach和array.includes方法,解决方案将很简单
让arr1=['a','b','c','d','e'];
设arr2=['b','e','f'];
arr1.forEach(obj=>{
如果(!arr2.包括(obj))
arr2.推力(obj);
})
console.log(arr2)
让arr1=[“a”、“b”、“c”、“d”、“e”];
设arr2=[“b”,“e”,“f”];
//方法1,使用“reduce”和“includes”`
常量输出1=arr1.reduce(
(acc,cur)=>(!acc.包括(cur)和acc.推送(cur),acc),
arr2
);
//方法2,使用'reduce'和building对象来处理重复项。这将使查找变得容易
const output2=Object.keys(
concat(arr1).reduce((acc,cur)=>Object.assign(acc,{[cur]:1}),{})
);
控制台日志(output1);
控制台日志(output2)代码>temp
是指向arr2
的指针,因此对temp
的更改就是对arr2
的更改。为了避免这种情况,请使用:temp=arr2.slice()
,它将生成一个副本。@iAmOren噢,谢谢你的解释,我想知道为什么我在输出(temp)中得到了重复的结果
temp = ['b','e','f','a','c','d']