我在2D数组的列中搜索特定元素时遇到问题。如果我在check(arr,2)中传递参数2,那么我返回false,但是当我在testArray(arr,3)中将参数3作为传递参数时,则在控制台中返回true,但是它出错了,因为在第3列中没有元素2注意:testArray(arr,2)中的第二个参数表示从0到3的列。有人可以帮我吗?
在第二个循环中,您回来太早了!-call的任何true
结果都会arraySearch()
触发返回肯定结果。我将其更改为,如果arraySearch()
返回则仅过早地退出循环false
,否则它将遍历所有数字并最终返回true
。
您可以一口气完成整个工作:
var arr = [ [1, 2, 3, 4], [2, 3, 4, 1], [2, 3, 4, 2], [4, 1, 2, 3]];
// changed data: ^
const chk=(arr,c)=>arr.map((e)=>e[c]).sort().every((e,i)=>e==(i+1))
console.log(chk(arr,2)); // false
console.log(chk(arr,3)); // true
诚然,这有点神秘,但是对于那些“热爱编码”的人来说,解决它可能是一个有趣的挑战。;-)
首先,我
.map()
sort()
元素,最后every()
其中之一与其在提取和排序的一维数组中的索引进行比较。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句