function getIndex(arr,val){ for(var i=0;i<arr.length;i++){ if(arr[i]==val){ return i; } }
时间: 2024-02-14 21:31:55 浏览: 25
你的第一个问题是关于一个函数的实现。这个函数名为getIndex,接受两个参数arr和val。它的作用是找到数组arr中值为val的元素的索引,并返回该索引。
函数的实现使用了一个for循环来遍历数组arr。在每次循环中,通过比较当前元素arr[i]与val的值,判断是否找到了目标元素。如果找到了目标元素,就使用return语句返回当前的索引i。
如果在循环结束后仍然没有找到目标元素,则函数不会返回任何值,相当于返回了undefined。
相关问题
为什么id为1的学生的年龄运行输出没有增加package MianXiangDuiXiangDemo3; public class StudentsTest2 { public static void main(String[] args) { //创建数组 Students[] arr = new Students[3]; //创建学生对象 Students stu1 = new Students("财", 1, 24); Students stu2 = new Students("来", 2, 26); Students stu3 = new Students("旺", 3, 21); //添加到数组 arr[0] = stu1; arr[1] = stu2; arr[2] = stu3; //5、查询id为“heima002"的学生,如果存在,则将他的年龄加一 int index = getIndex(arr,1); if (index >= 0){ Students stu =arr[index]; int newage = stu.getAge() + 1; stu.getAge(newage); printArr(arr); }else { System.out.println("当前id不存在,修改失败"); } } //找到id在数组中的索引 public static int getIndex(Students[] arr,int id){ for (int i = 0; i < arr.length; i++) { Students stu = arr[i]; if (stu !=null){ int sid = stu.getId();//sid存在的学生id if (sid == id){ return i; } } } return -1;// } private static void printArr(Students[] arr) { for (int i = 0; i < arr.length; i++) { Students stu = arr[i]; if (stu != null) { System.out.println(stu.getId() + "," + stu.getName() + "," + stu.getAge()); } } } }
在代码中,更新学生年龄的代码有问题。应该使用 `stu.setAge(newage);` 而不是 `stu.getAge(newage);`。因为 `getAge()` 方法只是获取年龄的值,并不会修改年龄。修改后的代码如下:
```
//5、查询id为“1”的学生,如果存在,则将他的年龄加一
int index = getIndex(arr,1);
if (index >= 0){
Students stu =arr[index];
int newage = stu.getAge() + 1;
stu.setAge(newage);
printArr(arr);
}else {
System.out.println("当前id不存在,修改失败");
}
```
这样就可以正确地将 id 为 1 的学生年龄加一并输出了。
package day0603; import java.util.Arrays; /* 持久层 */ public class StudentDao { private Student[] students = {}; public String addStudent(Student student) { students = Arrays.copyOf(this.students, students.length + 1); students[students.length-1] = student; return "添加成功"; } public Student[] getStudents(){ return students; } public String deleteStudentById(String id) { int index = getIndex(id); students[index] = students[students.length-1]; students = Arrays.copyOf(students,students.length-1); return "删除成功"; } public String updateStudent(Student student) { String id = student.getId(); int index = getIndex(id); students[index] = student; return "修改成功"; } public Student selectOneById(String id) { int index = getIndex(id); return students[index]; } public int getIndex(String id) { for (int i = 0; i < students.length; i++) { if (students[i].getId().equals(id)) { return i; } } return -1; } }将该代码中的student全部替换为teacher
替换后的代码如下:
```java
package day0603;
import java.util.Arrays;
/* 持久层 */
public class TeacherDao {
private Teacher[] teachers = {};
public String addTeacher(Teacher teacher) {
teachers = Arrays.copyOf(this.teachers, teachers.length + 1);
teachers[teachers.length-1] = teacher;
return "添加成功";
}
public Teacher[] getTeachers(){
return teachers;
}
public String deleteTeacherById(String id) {
int index = getIndex(id);
teachers[index] = teachers[teachers.length-1];
teachers = Arrays.copyOf(teachers,teachers.length-1);
return "删除成功";
}
public String updateTeacher(Teacher teacher) {
String id = teacher.getId();
int index = getIndex(id);
teachers[index] = teacher;
return "修改成功";
}
public Teacher selectOneById(String id) {
int index = getIndex(id);
return teachers[index];
}
public int getIndex(String id) {
for (int i = 0; i < teachers.length; i++) {
if (teachers[i].getId().equals(id)) {
return i;
}
}
return -1;
}
}
```