自己改写的判断二维数组中是否含有某数组,有就返回它的位置?求解答!

这个方法始终返回-1,应该怎么改,或者有没有更好的方法?array是二维数组,element是一维数组
arrayHasElement(array,element){
letel=array;
for(letnumberinel){
if(el[number].length===element.length){
for(varindexinel){
if(el[number][index]!==element[index]){
break;
}
if(Number(index)===(el[number].length-1)){
console.log('bbbbbbbb',number);
returnnumber;
}
}
}
}
return-1;
},
上边写错了el落下了一个number
arrayHasElement(array,element){
letel=array;
for(letnumberinel){
if(el[number].length===element.length){
for(varindexinel[number]){
if(el[number][index]!==element[index]){
break;
}
if(Number(index)===(el[number].length-1)){
returnnumber;
}
}
}
}
return-1;
},
有没有能优化的,感觉写的着实麻烦?
慕森王
浏览 230回答 2
2回答

郎朗坤

如果你array[i]和element是相同的引用,则可以直接使用array.indexOf(element)。如果不是相同引用,但数组内内容一致属于相同的话,简单实现如下vararray=[[1,2,3],[4,5],[6]];varelement=[4,5];varindex=array.findIndex((item)=>{if(item.length!==element.length)returnfalse;returnelement.every((number,index)=>{returnnumber===item[index];});});console.log(index);题主的写法修改成下面即可functionarrayHasElement(array,element){letel=array;for(letnumberinel){if(el[number].length===element.length){for(varindex=0;index
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript