当给函数传两个参数,第一个查找项,第二个查找开始位置。函数没有返回值。请教!
<!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 星