通訊錄是一個存儲各種聯系信息的集合,如電子郵件地址,電話號碼和物理地址,這些信息通常是以聯系人的方式組織在一起。通常,這些通訊錄數據存儲在數據庫的表中,但是將通訊錄數據存儲在JSON格式的數據文件中也是非常流行的。
{ "contacts": [ { "firstName": "John", "lastName": "Doe", "email": "johndoe@gmail.com", "phone": "123-555-1234" }, { "firstName: "Jane", "lastName": "Doe", "email": "janedoe@gmail.com", "phone": "123-555-5678" } ] }
在JavaScript中,我們可以使用Ajax(Asynchronous JavaScript and XML)來獲取這些數據,其中XMLHttpRequest對象是實現AJAX的主要手段。當用戶鍵入通訊錄的搜索文本時,我們可以使用AJAX來異步查詢JSON數據文件。下面是使用AJAX從JSON數據文件中檢索通訊錄的示例。
function getContacts(callback) { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { callback(JSON.parse(xhr.responseText).contacts); } } xhr.open("GET", "contacts.json", true); xhr.send(); } getContacts(function(contacts) { console.log(contacts); });
在上面的函數中,callback是在取回數據之后執行的回調函數,用于將取回的數據傳遞給其他JavaScript代碼。在Ajax請求中指定的URL是通訊錄數據的JSON文件。最后,我們使用一個名為parse的JSON對象方法將我們取回的JSON字符串解析為可用的JavaScript對象。
一旦我們已經獲取了通訊錄的數據,我們可以使用JavaScript來實現搜索和呈現通訊錄所需的UI。通過應用一些基本的CSS樣式,我們可以輕松地為搜索框添加樣式,使其更加可讀和吸引人。
#search-input { background: #444444; border: none; border-radius: 4px; color: #ffffff; font-size: 16px; padding: 10px; margin-bottom: 20px; } #search-input:focus { outline: none; }
最終,我們可以將搜索輸入框的輸入與我們的通訊錄數據進行匹配,然后按條件篩選和呈現所有匹配項。下面是一個使用JavaScript在搜索中過濾通訊錄的示例。
function filterContacts(query, contacts) { var filteredContacts = []; for (var i = 0; i < contacts.length; i++) { var contact = contacts[i]; var match = false; if (contact.firstName.indexOf(query) !== -1 || contact.lastName.indexOf(query) !== -1 || contact.email.indexOf(query) !== -1 || contact.phone.indexOf(query) !== -1) { match = true; } if (match) { filteredContacts.push(contact); } } return filteredContacts; } var searchInput = document.getElementById("search-input"); searchInput.addEventListener("keyup", function() { var query = this.value.toLowerCase(); getContacts(function(contacts) { var filteredContacts = filterContacts(query, contacts); // Render filtered contacts }); });
在上面的函數中,我們定義了一個名為filterContacts的函數,該函數接受搜索查詢字符和要過濾的通訊錄數據,然后返回所有匹配的聯系人。搜索查詢將轉換為小寫字符以方便搜索,然后我們通過在通訊錄數據中查找與查詢相匹配的字符來過濾聯系人。最終,我們將所有匹配項呈現給用戶。
總之,JavaScript是實現通訊錄的絕佳選擇,它可以輕松地用于處理和呈現大量數據。使用JavaScript和JSON數據文件可以創建可靠和高效的通訊錄,幫助您輕松管理聯系人信息。