2016-09-11 12 views
8

Tôi có một đoạn mã JS phân tích qua một tệp, sau đó liên kết mảng với bản đồ cặp khóa-giá trị và sau đó lặp lại nó để tìm tên thành phố phù hợp với phương pháp .includes. Vấn đề của tôi là trường cuối cùng (trong đó hàm được gọi là câu hỏi) hoạt động tốt trên đầu của tôi cho cả Chrome và Firefox. Nó không hoạt động vì một số lý do cho các thành viên trong nhóm của tôi.Cùng một mã, cùng một trình duyệt, hành vi khác nhau cho người dùng

Đây là đoạn mã JS mà không được iterating:

Edit: đây là cách các tập tin đã được mở:

var rawFile = new XMLHttpRequest(); 
    rawFile.open("GET", "../data/myFile.txt", false); 

for (var i = 0; i < allText.length; i++) { 
    if (i % 2 == 0) { 
    myMap[allText[i]] = allText[i + 1]; 
    } 
} 

var city = document.getElementById("city").value; 
for (var key in myMap) { 
    if (myMap.hasOwnProperty(key)) { 
    if (myMap[key].toLowerCase().includes(city.toLowerCase())) { 
     document.getElementById("city").value = myMap[key] 
     document.getElementById("zipcode").value = key; 
    } 
    } 
} 

Đây là phần html mà các cuộc gọi nó :

<label for="myLabel">City: </label> 
<input type="text" name="myLabel" id="myLabel" onblur="readTextFile()"> 

Chính xác tôi là gì vấn đề và làm thế nào tôi có thể khắc phục nó vì nó không có ý nghĩa với tôi, đến từ thế giới của Java và C++, nơi mà tôi chưa từng gặp phải vấn đề như vậy trước đây. Nếu bạn tự hỏi tại sao JS có thể xấu xí, đó là kết quả của một sinh viên với một giáo viên nghĩ rằng việc hiển thị các ví dụ của W3Schools tương đương với việc dạy học tốt.

+0

sử dụng chrome và bước qua mã, chuyển đến tab nguồn (f12) và đặt điểm ngắt trên dòng sự cố của bạn? – saj

+0

tốt cho tôi nó sẽ không quan trọng vì nó hoạt động trên đầu của tôi. Tôi đoán họ có thể thử điều đó. – SomeStudent

+3

tại sao đặt câu hỏi nếu nó không quan trọng – saj

Trả lời

1

Chức năng bao gồm Javascript có thể hoạt động không ổn định do một số trình duyệt không hỗ trợ chức năng này. Bạn cần phải khôn ngoan khi chọn các hàm javascript đặc biệt khi mozilla có thể có một số chức năng không được hỗ trợ trên một số trình duyệt. W3schools cũng cung cấp một danh sách hỗ trợ trình duyệt cho một chức năng. Kiểm tra liên kết dưới đây để biết danh sách đó cho bao gồm chức năng:

http://www.w3schools.com/jsref/jsref_includes.asp

Ngoài ra, bạn có thể sử dụng chức năng indexOf như:

 myMap[key].toLowerCase().indexOf(city.toLowerCase()) >= 0 

Tôi có bản thân mình các vấn đề phải đối mặt với bao gồm chức năng do đó cung cấp cho bạn một cách giải quyết. Lập trình vui vẻ.

+0

sẽ cung cấp cho nó một shot. – SomeStudent

Các vấn đề liên quan