当给函数传两个参数,第一个查找项,第二个查找开始位置。函数没有返回值。请教!
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> 封装indexOf方法</title> </head> <body> <script> var n=[1,2,3,4,5,6,7,8,9]; function arrayIndexOf(arr,nbr){ var i; if(nbr!=null){ i=nbr; }else{ i=0; } for(i<n.length;i++){ if(arr===n[i]){ return i; } } return -1; } var a=arrayIndexOf(1,2); document.write(a); </script> </body> </html>
请问,这是哪里出错了呢?
116
收起
正在回答
2回答
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>ArrayIndexOf</title> </head> <body> <script type="text/javascript"> // searchValue :查找的值 // startIndex :查找的起始位置,没做过多判断,只能传入>=0的整数,也可不传 // arr :数组 function arrayIndexOf(arr, searchValue, startIndex = 0) { if (startIndex > arr.length-1) { return -1; } // 这个if语句好像是多余的,不写也没影响 var i = startIndex; for (; i < arr.length; i++) { if (arr[i] === searchValue) { return i; } } return -1; } // 测试 var n = [9, 1, 2, 3, 4, 5, 2, 6, 1, 7, 8, 9]; document.write(arrayIndexOf(n, 9, 15) + '<br>'); document.write(arrayIndexOf(n, 2, 4) + '<br>'); document.write(arrayIndexOf(n, 2) + '<br>'); document.write(arrayIndexOf(n, 9) + '<br>'); document.write(arrayIndexOf(n, 9, 5) + '<br>'); document.write(arrayIndexOf(n, 10, 5) + '<br>'); </script> </body> </html>
按你这个,我也考虑到传一个查询起始位置,写了一个
慕尼黑6819948
2017-05-23 13:10:40
你是做的提问这个位置的编程练习吗?
如果是,可能你没有理解题目意思,题目是要求你写一个函数,传入的两个参数是:1、一个数组;2、要查找的一个值。
返回的值应该是查找的那个值在数组中的位置,如果没找到就按通常的做法返回-1。
var a=arrayIndexOf(1,2);
从你这个函数调用就看出有问题了。
当给函数传两个参数,第一个查找项,第二个查找开始位置。
标题的描述也跟这个编程练习的题意对不上。
HTML5与CSS3实现动态网页 2018
- 参与学习 1887 人
- 提交作业 4643 份
- 解答问题 5760 个
有HTML和CSS基础,却不知道如何进阶?本路径带你通过系统学习,完成从“会做网页”到“做出好的动态网页”的蜕变,迈出成为前端工程师的第一步。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星