【发布时间】:2020-07-03 09:12:48
【问题描述】:
给定两个数组 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)返回真,因为在 b 中 121 是 11 的平方,14641 是 121 的平方,20736 是 144 的平方,361 是 19 的平方, 25921 161 的平方,以此类推。
首先,我只想检查每个项目并测试平方版本是否存在于另一个数组中。这是我的代码:
function comp(array1, array2){
return array2.every((item)=>{
let a = array1.indexOf((item ** 2));
if(a >=0){
return true;
} else{
return false;
}
})
}
console.log(comp([121, 144, 19, 161, 19, 144, 19, 11], [121, 14641, 20736, 361, 25921, 361, 20736, 361]));
这个例子当然应该返回true。我的代码看起来很基本,所以我不确定为什么它不起作用。此外,如果我为第二个数组放置一个空数组,它会返回 false。
【问题讨论】:
-
a = [11,11],b = [121]的答案应该是什么?我想它应该是false,因为它确实有121,但它只出现一次。
标签: javascript arrays algorithm