var student = new Object();
student.classes = ["Digital Photography","Chemistry I","Art of Film","Business in Microcomputer Applications","Study Hall","Algebra 2","Careers","Business Math"]
function newStudent(){
var studentName = document.getElementById("name").value;
var one = document.getElementById("1").value;
var two = document.getElementById("2").value;
var three = document.getElementById("3").value;
var four = document.getElementById("4").value;
var five = document.getElementById("5").value;
var six = document.getElementById("6").value;
var seven = document.getElementById("7").value;
var eight = document.getElementById("8").value;
var newStudent = new Object();
newStudent.name = studentName;
newStudent.classes = [one, two, three, four, five, six, seven, eight];
if(student.classes.slice(0,1) == newStudent.classes.slice(0,1)){
alert('You share first hour with Student');
} else {
alert("You have " + newStudent.classes.slice(0,1) + " instead of " + student.classes.slice(0,1));
}
}
Почему, если я ввожу цифровую фотографию, поскольку первый класс newStudent не показывает предупреждение, сообщающее пользователю, что они разделяют этот класс?Почему эти значения не равны друг другу?
игнорировать неаккуратный код Я устал, и теперь я устал и смущен.
Потому что вы сравниваете два разных массивов. '.slice' дает вам новый массив. Попробуйте выполнить цикл. – elclanrs
@elclanrs, если значения .slice совпадают, если он не вернется как истинный, если я проверю, являются ли они равными? – TheWalkingPacifist
Нет, сравнение массивов напрямую сравнивается по идентичности объекта. Если вы хотите сравнить содержимое массива, вам нужно выполнить цикл и сравнить каждый из них. –