Я пытаюсь решить проблему codewars, и я не могу заставить свой код работать.
a1 = [121, 144, 19, 161, 19, 144, 19, 11];
a2 = [11*11, 121*121, 144*144, 19*19, 161*161, 19*19, 144*144, 19*19];
Test.assertEquals(comp(a1, a2), true);
function comp(array1, array2){
let newArray1Squared = [];
let newArray1 = a1.sort(function(a, b){
return a - b;
});
newArray1.map(function(num){
newArray1Squared.push(num*num);
});
let newArray2 = a2.sort(function(a, b){
return a - b;
});
for (let i = 0; i<newArray1Squared.length; i++){
if (newArray1Squared[i] === newArray2[i]){
return true;
} else {
return false;
}
}
}
Пока это мой код. И проблема в следующем:
Для двух массивов a и b напишите функцию comp (a, b) (compSame (a, b) в Clojure), которая проверяет, имеют ли два массива "одинаковые" элементы, с одинаковые кратности. «То же» означает здесь, что элементы в b являются элементами в квадрате, независимо от порядка.
Примеры Допустимые массивы
a = [121, 144, 19, 161, 19, 144, 19, 11]
b = [121, 14641, 20736, 361, 25921, 361, 20736, 361]
comp (a, b) возвращает true потому что в b 121 квадрат 11, 14641 квадрат 121, 20736 квадрат 144, 361 квадрат 19, 25921 квадрат 161 и т. д. Это становится очевидным, если мы напишем элементы b в виде квадратов: