Javascript 如何从数组中删除已比较的值?
嗨,我正在努力解决这个问题 给定两个数组a和b,编写一个函数comp(a,b)(Clojure中的compSame(a,b))来检查这两个数组是否具有具有相同重数的“相同”元素。“相同”在这里意味着,b中的元素是a平方中的元素,无论顺序如何 经过多次测试,我达到了这个状态,下面是我的函数Javascript 如何从数组中删除已比较的值?,javascript,arrays,Javascript,Arrays,嗨,我正在努力解决这个问题 给定两个数组a和b,编写一个函数comp(a,b)(Clojure中的compSame(a,b))来检查这两个数组是否具有具有相同重数的“相同”元素。“相同”在这里意味着,b中的元素是a平方中的元素,无论顺序如何 经过多次测试,我达到了这个状态,下面是我的函数 function comp(array1, array2) { let answer = []; let arrayToCompare = []; if(array1){ ar
function comp(array1, array2) {
let answer = [];
let arrayToCompare = [];
if(array1){
array1.forEach((array) => {
arrayToCompare.push(Math.pow(array, 2));
});
console.log(arrayToCompare);
console.log(array2)
}else{
return false
}
if(array1 === null || array2 === null){
return false
}
for (let i = 0; i < arrayToCompare.length; i++) {
if (array2.includes(arrayToCompare[i])) {
answer.push(true);
} else {
answer.push(false)
}
}
if (answer.includes(false)) {
console.log(false);
return false;
} else {
console.log(true);
return true;
}
}
这应该返回为false,但我的函数返回true。有人能告诉我我失踪的地方吗&
如何优化此功能这就是我解决问题的方法:
function comp(array1, array2) {
return array2.sort((a,b) => a - b).join('-') === array1.sort((a,b) => a - b).map(item => item ** 2).join('-');
}
这就是我解决问题的方法:
function comp(array1, array2) {
return array2.sort((a,b) => a - b).join('-') === array1.sort((a,b) => a - b).map(item => item ** 2).join('-');
}
据我所知,您只需删除所有成功签入的阵列2,这样就不会对重复项产生误报
for (let i = 0; i < arrayToCompare.length; i++) {
if (array2.includes(arrayToCompare[i])) {
// if found, remove it from array2 so it will not be compared again
array2.splice(array2.indexOf(arrayToCompare[i]), 1);
answer.push(true);
} else {
answer.push(false)
}
}
for(设i=0;i
我进行了测试,它与给定的示例数据配合良好据我所知,您只需删除每个成功签入阵列2,这样就不会对重复项产生误报
for (let i = 0; i < arrayToCompare.length; i++) {
if (array2.includes(arrayToCompare[i])) {
// if found, remove it from array2 so it will not be compared again
array2.splice(array2.indexOf(arrayToCompare[i]), 1);
answer.push(true);
} else {
answer.push(false)
}
}
for(设i=0;i
我进行了测试,它与给定的示例数据配合良好