前端做模糊查詢(含AI版)

文章目錄

  • 前言
  • 代碼實現
    • AI
    • 個人
  • 總結


前言

因為table需要編輯,所以如果從后端拿數據,編輯后篩選數據就會丟失。這時候就需要前端一次性拿到所有數據進行過濾,數據進行淺拷貝,以便過濾后的數據修改之后,同步修改總數居,保存的時候直接保存所有數據。
個人寫的版本不算是完整遞歸,就想搞個遞歸版本,就用AI寫了一個(https://code.fittentech.com/try)這個可以直接內嵌vscode,但他寫的我運行不起來,做了些修改才能正常運行,突然就感覺ai暫時還替代不了我呀,哈哈哈

代碼實現

AI

<!DOCTYPE html>
<html lang="zh">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>前端模糊查詢示例</title><style>ul {list-style-type: none;padding: 0;}li {padding: 8px;background-color: #f9f9f9;margin-bottom: 2px;}li.match {background-color: #e7f3fe;}</style>
</head>
<body><input type="text" id="searchInput1" placeholder="請輸入查詢內容..."><input type="text" id="searchInput2" placeholder="請輸入查詢內容..."><ul id="searchList"><li>蘋果 - 紅色</li><li>香蕉 - 黃色</li><li>橙子 - 橙色</li><li>葡萄 - 紫色</li><li>西瓜 - 綠色</li></ul>// 這里是我加的,不然只能搜索一次<ul id="searchList1" style='display:none'><li>蘋果 - 紅色</li><li>香蕉 - 黃色</li><li>橙子 - 橙色</li><li>葡萄 - 紫色</li><li>西瓜 - 綠色</li></ul><script>document.getElementById('searchInput1').addEventListener('blur', function() {updateResults();});document.getElementById('searchInput2').addEventListener('blur', function() {updateResults();});function updateResults() {const query1 = document.getElementById('searchInput1').value.toLowerCase();const query2 = document.getElementById('searchInput2').value.toLowerCase();const allItems = Array.from(document.getElementById('searchList1').getElementsByTagName('li'));const list = document.getElementById('searchList');list.innerHTML = ''; // 清空原有列表內容recursiveFilter(allItems, [query1, query2], function(filteredItems) {/**我把清除列表寫在這里的,因為recursiveFilter里的callback會被重復調用const list = document.getElementById('searchList');list.innerHTML = ''; // 清空原有列表內容*/filteredItems.forEach(item => {const li = document.createElement('li');li.textContent = item.textContent;li.classList.add('match');list.appendChild(li);});// 這個返回也是我加的,因為不加返回的話,recursiveFilter方法里的return之后拿不到數據艾,filteredRest會為undefined// return filteredItems;});}function recursiveFilter(items, queries, callback) {if (items.length === 0) {return callback([]);}const [first, ...rest] = items;const filteredRest = recursiveFilter(rest, queries, callback);if (queries.some(query => query && first.textContent.toLowerCase().includes(query))) {// return callback([first, ...filteredRest]);return [first, ...filteredRest];} else {// return callback(filteredRest);return filteredRest;}}</script>
</body>
</html>

個人

	tempArrFun(table, obj) {// 如果沒有查詢該條件則返回所有,因為searchObj會有page之類的分頁參數if (!this.searchObj[obj]) {return table;}return table.filter(item => {if (item[obj]) {if (item[obj].includes(this.searchObj[obj])) return true;return false;}// 是否取空值return false;});},handleSearch(obj) {this.allSearchTable = [];this.searchObj = Obj;let tempArr = [];this.searchInfo.forEach((obj, index) => {if (index === 0) {tempArr = this.tempArrFun(this.allTableData, obj.CODE);} else {tempArr = this.tempArrFun(tempArr, obj.CODE);}if (index === this.searchInfo.length - 1) {this.allSearchTable = tempArr;}});}

總結

簡單記錄一下,用ai寫代碼的情況。不擅長單元測試,我要用ai做單元測試,突然發現以前的想法還是很正確(任何時候創意才是最值錢的)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/902515.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/902515.shtml
英文地址,請注明出處:http://en.pswp.cn/news/902515.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Mujoco xml < sensor>

< sensor> jointposjointveljointactuatorfrcframequatgyroaccelerometerframeposframelinveltouchobjtype"site" objname"imu" 和site"imu"的區別python中與sensor有關的寫法傳感器名字索引第幾個idid索引傳感器名字傳感器數量sensor中的…

Python爬蟲從入門到實戰詳細版教程

Python爬蟲從入門到實戰詳細版教程 文章目錄 Python爬蟲從入門到實戰詳細版教程書籍大綱與內容概覽第一部分:爬蟲基礎與核心技術1. 第1章:[爬蟲概述](https://blog.csdn.net/qq_37360300/article/details/147431708?spm=1001.2014.3001.5501)2. 第2章:HTTP協議與Requests庫…

ubuntu--漢字、中文輸入

兩種輸入框架的安裝 ibus 鏈接 (這種方式安裝的中文輸入法不是很智能&#xff0c;不好用)。 Fcitx 鏈接這種輸入法要好用些。 簡體中文檢查 fcitx下載和配置 注意&#xff1a;第一次打開fcitx-config-qt或者fcitx configuration可能沒有“簡體中文”&#xff0c;需要把勾…

Java 數據庫性能優化:SQL 查詢的 10 個關鍵點

Java 數據庫性能優化&#xff1a;SQL 查詢的 10 個關鍵點 在 Java 開發中&#xff0c;數據庫操作是必不可少的一環。然而&#xff0c;隨著數據量的增加&#xff0c;數據庫性能問題往往會成為系統性能的瓶頸。而 SQL 查詢的優化&#xff0c;是提高數據庫性能的重要手段。本文將…

Containerd與Docker的相愛相殺:容器運行時選型指南

容器運行時&#xff08;Container Runtime&#xff09;作為云原生基礎設施的底層引擎&#xff0c;正從Docker一家獨大走向多元化競爭。本文將深入剖析Containerd與Docker的技術血緣、性能差異及選型策略&#xff0c;揭示如何根據場景需求選擇最優解。 一、技術血緣&#xff1a;…

計算機組成與體系結構:緩存(Cache)

目錄 為什么需要 Cache&#xff1f; &#x1f9f1; Cache 的分層設計 &#x1f539; Level 1 Cache&#xff08;L1 Cache&#xff09;一級緩存 &#x1f539; Level 2 Cache&#xff08;L2 Cache&#xff09;二級緩存 &#x1f539; Level 3 Cache&#xff08;L3 Cache&am…

HTTP測試智能化升級:動態變量管理實戰與效能躍遷

在Web應用、API接口測試等領域&#xff0c;測試場景的動態性和復雜性對測試數據的靈活管理提出了極高要求。傳統的靜態測試數據難以滿足多用戶并發、參數化請求及響應內容驗證等需求。例如&#xff0c;在電商系統性能測試中&#xff0c;若無法動態生成用戶ID、訂單號或實時提取…

tomcat 的安裝與啟動

文章目錄 tomcat 服務器安裝啟動本地Tomcat服務器 tomcat 服務器安裝 https://tomcat.apache.org/下載 Tomcat 10.0.X 啟動本地Tomcat服務器 進入 Tomcat 的 bin

TCP三次握手與四次揮手面試回答版本

面試官&#xff1a;說一下TCP三次握手的過程 參考面試回答&#xff1a; 在第一次握手的時候、客戶端會隨機生成初始化序號、放到TCP報文頭部的序號字段中、同時把SYN標志設置為1 這樣就表示SYN報文&#xff08;這里是請求報文&#xff09;。客戶端將報文放入 TCP 報文首部的序…

AIGC產品如何平衡用戶體驗與內容安全?

當ChatGPT能寫詩、Sora會拍電影、AI主播24小時帶貨時&#xff0c;一場關于“AI說什么”的隱形戰爭&#xff0c;正在算法與監管的夾縫中悄然爆發。 從DeepSeek的沖擊到多模態技術的祛魅&#xff0c;AIGC正在重塑內容創作的邊界。但同時&#xff0c;諸多質疑也正在發聲&#xff…

安卓垂直進度條

package 你的包名;import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.RectF; import android.util.AttributeSet; import android.view.MotionEvent; import android…

hackmyvm-airbind

收集信息 arp-scan -l nmap -sS -v 192.168.195.162 訪問掃描到的ip&#xff0c;直接跳轉到登錄頁面&#xff0c;利用admin/admin弱口令登錄 在settings.php中找到一處文件上傳&#xff0c;上傳一句話木馬&#xff0c;上傳成功 反彈shell 上傳php-reverse-shell.php 抓包&am…

【Rust 精進之路之第14篇-結構體 Struct】定義、實例化與方法:封裝數據與行為

系列: Rust 精進之路:構建可靠、高效軟件的底層邏輯 作者: 碼覺客 發布日期: 2025-04-20 引言:超越元組,給數據賦予意義 在之前的學習中,我們了解了 Rust 的基本數據類型(標量)以及兩種基礎的復合類型:元組 (Tuple) 和數組 (Array)。元組允許我們將不同類型的值組合…

jenkins尾隨命令

在訪問jenkins的網址后面可以追加命令&#xff0c;比如訪問地址是 http://10.20.0.124:8080/&#xff0c;常用的有以下幾種方式&#xff1a; 1.關閉Jenkins 只要瀏覽器輸入http://10.20.0.124:8080/exit即可退出&#xff0c;或者http://localhost:8080/exit 2.重啟Jenkins …

相機模型--CMOS和CCD的區別

1--CMOS和CCD的工作原理 CCD&#xff08;Charge Coupled Device&#xff0c;電荷耦合器件&#xff09;&#xff1a; 1. 圖像通過光電效應在感光單元中轉化為電荷&#xff1b; 2. 每個像素上的電荷被依次“耦合”并傳輸到芯片的角落&#xff0c;通過一個或幾個模擬輸出放大器輸…

二叉樹理論基礎

二叉樹種類 滿二叉樹&#xff1a;每個非葉子節點都有且只有兩個子節點。 和完全二叉樹&#xff1a;除了最底層外&#xff0c;其他各層都是滿的&#xff1b;最底層的節點都集中在左側。 二叉搜索樹&#xff1a;對于任意節點 u&#xff0c;左子樹上所有節 點的值都小于 u.val…

使用ZYNQ芯片和LVGL框架實現用戶高刷新UI設計系列教程(第九講)

這一期講解GUI_guider中的容器控件的使用以及相關函數&#xff0c;容器本質上是具有布局和自動調整大小功能的基本對象 &#xff0c;通常用來裝載其他子控件。 打開上一期的項目&#xff0c;在工具欄中選中容器控件拖拽到界面中&#xff0c;具體如圖所示&#xff1a; 容器默認…

qt QGroupButton 實現兩個QPushButton的互斥

import sys from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QButtonGroup, QVBoxLayoutclass ExampleApp(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):# 創建兩個 QPushButtonself.button1 QPushButton("按鈕1&quo…

工業物聯網的可視化編程革新:Node-RED與邊緣計算的深度融合-縱橫智控

在工業物聯網的演進歷程中&#xff0c;可視化編程工具正成為打破技術壁壘的核心力量。Node-RED作為開源的可視化編程平臺&#xff0c;通過其獨特的拖拽式邏輯構建能力&#xff0c;為設備連接、數據處理與業務邏輯設計提供了全新范式。本文將深入解析Node-RED的技術優勢&#xf…

Uniapp:view容器(容器布局)

目錄 一、基本概述二、屬性說明三、常用布局3.1 橫向布局3.2 縱向布局3.3 更多布局3.3.1 縱向布局-自動寬度3.3.2 縱向布局-固定寬度3.3.3 橫向布局-自動寬度3.3.4 橫向布局-居中3.3.5 橫向布局-居右3.3.6 橫向布局-平均分布3.3.7 橫向布局-兩端對齊3.3.8 橫向布局-自動填充3.3…