当前位置: 首页 > article >正文

【Java Web学习 | 第九篇】JavaScript(3) 数组+函数

【Java Web学习 | 第九篇】JavaScript(3) - 数组与函数进阶2026最新版本篇对数组和函数进行更深入、实用的讲解这是 Java Web 开发中处理后端返回数据JSON 数组/对象列表和封装业务逻辑的核心技能。由于你特别指定“数组函数”本篇将重点强化这两个部分结合实际 Java Web 场景用户列表、表格渲染、数据过滤、分页等并补充高频使用的现代方法。1. 数组进阶Array Advanced1.1 常用高阶函数速查表企业开发必会方法作用是否返回新数组推荐使用场景forEach()遍历执行操作否简单遍历、无需返回值map()映射转换是数据格式转换、渲染列表filter()过滤是搜索、状态筛选find()查找第一个匹配项否根据 id 找单条记录findIndex()查找索引否需要知道位置时reduce()累加/统计/聚合否求和、计数、对象转换some()是否存在至少一个满足条件否权限检查、是否存在every()是否所有都满足条件否全量校验sort()排序会修改原数组否慎用列表排序flat()扁平化嵌套数组是处理多层数据1.2 实战示例结合 Java Web 用户管理// 模拟后端返回的用户列表JSON 格式constusers[{id:1,username:zhangsan,age:25,status:active,role:user,score:88},{id:2,username:lisi,age:30,status:inactive,role:admin,score:95},{id:3,username:wangwu,age:22,status:active,role:user,score:76},{id:4,username:zhaoliu,age:28,status:active,role:user,score:92}];// 1. 过滤 映射最常用组合constactiveUsersusers.filter(useruser.statusactive)// 只显示激活用户.map(user({// 只返回需要的字段id:user.id,name:user.username,age:user.age,score:user.score}));console.log(activeUsers);// 2. 使用 reduce 统计数据conststatsusers.reduce((acc,user){acc.totalUsers;acc.totalScoreuser.score;if(user.roleadmin)acc.adminCount;returnacc;},{totalUsers:0,totalScore:0,adminCount:0});console.log(stats);// { totalUsers: 4, totalScore: 351, adminCount: 1 }// 3. 查找与排序consthighestScoreUserusers.find(useruser.scoreMath.max(...users.map(uu.score)));console.log(最高分用户:,highestScoreUser);users.sort((a,b)b.score-a.score);// 按分数降序console.log(排序后:,users);1.3 数组解构 展开运算符// 解构const[first,second,...restUsers]users;console.log(first);// 第一条console.log(restUsers);// 剩余数组// 合并数组constnewUsers[...users,{id:5,username:newuser,age:26}];2.函数进阶Functions Advanced2.1 高阶函数函数作为参数或返回函数// 高阶函数示例创建一个过滤器工厂functioncreateFilterByKey(key,value){returnfunction(item){returnitem[key]value;};}// 使用constactiveFiltercreateFilterByKey(status,active);constactiveListusers.filter(activeFilter);2.2 箭头函数 this 问题重要// 箭头函数没有自己的 this适合回调consthandler{name:系统管理员,greet:function(){// 普通函数 this 指向调用者setTimeout((){console.log(你好我是${this.name});// 箭头函数继承外层 this},1000);}};handler.greet();2.3 纯函数与副作用企业开发最佳实践纯函数推荐输入相同输出一定相同无副作用。// 纯函数示例constaddScore(user,points)({...user,score:user.scorepoints});// 使用不修改原对象constupdatedaddScore(users[0],10);3. 综合实战动态表格渲染Java Web 常用!DOCTYPEhtmlhtmllangzh-CNheadmetacharsetUTF-8title数组 函数实战 - 用户表格/titlestyletable{width:100%;border-collapse:collapse;margin-top:20px;}th, td{border:1px solid #ddd;padding:12px;text-align:left;}th{background:#007bff;color:white;}.active{color:green;}/style/headbodyh1用户管理列表/h1inputtypetextidsearchplaceholder搜索用户名...onkeyupfilterTable()tableiduserTabletheadtrthID/thth用户名/thth年龄/thth状态/thth分数/thth操作/th/tr/theadtbody/tbody/tablescriptletcurrentUsers[...users];// 副本避免修改原始数据functionrenderTable(data){consttbodydocument.querySelector(#userTable tbody);tbody.innerHTMLdata.map(usertr td${user.id}/td td${user.username}/td td${user.age}/td td class${user.statusactive?active:}${user.statusactive?激活:禁用}/td td${user.score}/td td button onclickeditUser(${user.id})编辑/button button onclickdeleteUser(${user.id})删除/button /td /tr).join();}// 搜索过滤函数window.filterTablefunction(){constkeyworddocument.getElementById(search).value.toLowerCase();constfilteredusers.filter(useruser.username.toLowerCase().includes(keyword));renderTable(filtered);};// 模拟编辑和删除实际项目中会调用后端 APIwindow.editUser(id)alert(编辑用户 ID:${id});window.deleteUser(id){if(confirm(确认删除)){currentUserscurrentUsers.filter(uu.id!id);renderTable(currentUsers);}};// 页面加载完成后渲染window.onload()renderTable(users);/script/body/html4. 小练习建议立即完成使用filter map处理users数组筛选出年龄大于等于 25 岁的用户并返回只包含id、username、score的新数组。使用reduce计算所有用户的平均分数保留两位小数。封装一个函数searchUsers(keyword)返回匹配用户名的结果。修改上面表格示例添加“按分数排序”按钮点击后降序排列。下一篇文章预告《【Java Web学习 | 第十篇】JavaScript(4) - 异步编程Promise async/await与 Fetch API》我们将学习如何使用fetch调用 Spring Boot 后端 REST 接口实现真正的前后端数据交互GET/POST/PUT/DELETE。本篇核心总结数组熟练掌握map、filter、reduce三剑客函数优先使用箭头函数 高阶函数实战动态表格渲染是 Java Web 中最常见的操作之一有问题随时问想要完整可运行的表格示例代码包含排序功能需要更多 reduce 高级用法或直接进入异步 Fetch篇回复“给我完整表格代码”或“下一篇 Fetch”我立刻继续数组和函数是 JavaScript 处理数据的两大基石掌握后你已经具备了开发大部分前端交互的能力。继续加油

相关文章:

【Java Web学习 | 第九篇】JavaScript(3) 数组+函数

【Java Web学习 | 第九篇】JavaScript(3) - 数组与函数进阶(2026最新版) 本篇对数组和函数进行更深入、实用的讲解,这是 Java Web 开发中处理后端返回数据(JSON 数组/对象列表)和封装业务逻辑的核心技能。 由于你特别…...

GitHub下载加速终极指南:3分钟让你的克隆速度提升100倍

GitHub下载加速终极指南:3分钟让你的克隆速度提升100倍 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 如果你经常需要…...

PlotJuggler颜色映射终极指南:如何创建惊艳的数据可视化效果

PlotJuggler颜色映射终极指南:如何创建惊艳的数据可视化效果 【免费下载链接】PlotJuggler The Time Series Visualization Tool that you deserve. 项目地址: https://gitcode.com/gh_mirrors/pl/PlotJuggler PlotJuggler是一款功能强大的时间序列数据可视化…...

EC2Instances.info未来发展规划:AI驱动的智能实例推荐系统

EC2Instances.info未来发展规划:AI驱动的智能实例推荐系统 【免费下载链接】ec2instances.info Amazon EC2 instance comparison site 项目地址: https://gitcode.com/gh_mirrors/ec/ec2instances.info EC2Instances.info作为专业的Amazon EC2实例比较平台&a…...

npm新手必看:如何用package.json一键运行本地JS文件(附常见错误排查)

npm新手必看:如何用package.json一键运行本地JS文件(附常见错误排查) 刚接触Node.js生态的开发者,往往会被各种工具和配置文件搞得晕头转向。其中package.json作为项目的"身份证"和"说明书",掌握它…...

终极指南:5分钟掌握TegraRcmGUI Switch注入工具的核心能力

终极指南:5分钟掌握TegraRcmGUI Switch注入工具的核心能力 【免费下载链接】TegraRcmGUI C GUI for TegraRcmSmash (Fuse Gele exploit for Nintendo Switch) 项目地址: https://gitcode.com/gh_mirrors/te/TegraRcmGUI TegraRcmGUI是一款专为Nintendo Switc…...

MMSkeleton部署指南:从开发环境到生产环境的完整迁移

MMSkeleton部署指南:从开发环境到生产环境的完整迁移 【免费下载链接】mmskeleton A OpenMMLAB toolbox for human pose estimation, skeleton-based action recognition, and action synthesis. 项目地址: https://gitcode.com/gh_mirrors/mm/mmskeleton MM…...

如何用Win11Debloat让你的Windows系统速度提升70%:终极优化指南

如何用Win11Debloat让你的Windows系统速度提升70%:终极优化指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutt…...

3个秘诀彻底解决机械键盘连击问题:Keyboard Chatter Blocker全攻略

3个秘诀彻底解决机械键盘连击问题:Keyboard Chatter Blocker全攻略 【免费下载链接】KeyboardChatterBlocker A handy quick tool for blocking mechanical keyboard chatter. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyboardChatterBlocker 机械键盘…...

如何3步搭建AI驱动的多智能体股票分析平台?TradingAgents-CN全指南

如何3步搭建AI驱动的多智能体股票分析平台?TradingAgents-CN全指南 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 面对复杂多变的金…...

HighwayEnv完全指南:10分钟快速上手自动驾驶强化学习环境

HighwayEnv完全指南:10分钟快速上手自动驾驶强化学习环境 【免费下载链接】HighwayEnv A minimalist environment for decision-making in autonomous driving 项目地址: https://gitcode.com/gh_mirrors/hi/HighwayEnv HighwayEnv是一个轻量级的自动驾驶决…...

Fish 4.6发布,命令行工具迎来新升级

近日,基于 Rust 语言开发的现代化交互式 Shell Fish 4.6 正式发布。它以智能提示和友好体验著称,此次更新带来细节优化,支持 systemd 环境变量,提升与 Linux 系统集成度。深度集成 systemd2024 年起,systemd 引入三个用…...

smart-mqtt v1.5.4发布,认证能力大升级

smart-mqtt v1.5.4正式发布,此次版本聚焦企业级连接认证能力升级,推出全新高级认证插件,在高性能底座上补齐企业级接入能力,还公布了获取方式与未来规划。版本核心亮点v1.5.4重点通过advanced-auth-plugin让连接认证更适配企业真实…...

【深度验证】ArcGIS Band Collection Statistics相关性分析结果偏差的根源探究

1. 当GIS分析结果与统计软件不一致时 最近在做一个遥感数据分析项目时,我遇到了一个奇怪的现象:同样的数据集,在ArcGIS中使用Band Collection Statistics工具计算出的皮尔逊相关系数,与在Excel和R中计算的结果存在明显差异。起初我…...

别只刷题了!用Python/C++搞定考研机试高频算法(附PIPIOJ真题代码重构与优化)

从暴力解法到优雅实现:Python/C双语言拆解考研机试高频算法 考研机试不仅考察算法理解,更检验工程化编码能力。许多考生能写出正确但冗长的代码,却在时间优化和代码简洁性上失分。本文将用Python和C对比实现六大高频题型,重点分析…...

Docker下Kong+Konga全栈部署避坑指南(附PostgreSQL 9.6配置)

Docker环境下Kong与Konga全栈部署实战指南 引言 在现代微服务架构中,API网关扮演着流量调度与安全管控的关键角色。Kong作为开源API网关的标杆产品,凭借其插件化架构和强大性能,已成为企业级API管理的首选方案。而Konga作为Kong的图形化管理…...

HorizonCalendar与Airbnb设计系统的完美融合:打造iOS应用中的顶级日历体验

HorizonCalendar与Airbnb设计系统的完美融合:打造iOS应用中的顶级日历体验 【免费下载链接】HorizonCalendar A declarative, performant, iOS calendar UI component that supports use cases ranging from simple date pickers all the way up to fully-featured …...

游戏多开检测技术深度解析与实战绕过方案

1. 游戏多开检测技术全景解析 游戏多开检测本质上是一种防止同一程序重复运行的技术手段。我在逆向分析各类游戏客户端时发现,现代游戏通常会采用组合拳式的检测策略,从简单的进程查找到复杂的驱动级验证,防御层级越来越深。对于开发者而言&a…...

DAMO-YOLO智能视觉系统作品集:多场景零售货架检测效果惊艳展示

DAMO-YOLO智能视觉系统作品集:多场景零售货架检测效果惊艳展示 1. 零售视觉检测的新标杆 走进现代零售空间,商品陈列的艺术背后隐藏着复杂的运营挑战。传统的人工巡检方式已经难以满足快节奏零售环境的需求,这正是DAMO-YOLO智能视觉系统大放…...

4步完整指南:如何用OpenCore Legacy Patcher让旧Mac重获新生

4步完整指南:如何用OpenCore Legacy Patcher让旧Mac重获新生 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 想让被苹果抛弃的旧Mac电脑重新运行最…...

uni-app Android应用华为审核隐私权限提示与上架授权说明实战指南

1. uni-app Android应用华为审核隐私权限问题解析 第一次用uni-app开发Android应用准备上架华为市场时,我被审核驳回的理由整懵了——"缺少权限使用说明"。明明iOS版本在manifest.json配得好好的,怎么到Android就出问题?后来才发现…...

Tree of Thoughts终极指南:5分钟掌握思维树算法原理与实战应用

Tree of Thoughts终极指南:5分钟掌握思维树算法原理与实战应用 【免费下载链接】tree-of-thought-llm [NeurIPS 2023] Tree of Thoughts: Deliberate Problem Solving with Large Language Models 项目地址: https://gitcode.com/gh_mirrors/tr/tree-of-thought-l…...

解码器精准调优:LoRA赋能Depth-Anything-V2实现绝对深度估计

1. LoRA技术如何革新Depth-Anything-V2的深度估计 当我在实验室第一次尝试用LoRA微调Depth-Anything-V2时,意外发现只需要调整解码器中1x1卷积层的极少量参数,就能让相对深度模型输出精确的绝对深度值。这就像给一个只会判断"远近"的模型突然装…...

Python从入门到精通(第14章):迭代器与生成器

开头导语 这是本系列第14章。前面你已经用过很多次迭代器和生成器——for x in data 的背后是什么,map 返回的对象为什么不能下标访问,range 为什么不会占很多内存——这些问题的答案都在本章。通过亲手实现一个迭代器类,你会对 Python 迭代协议有清晰的认识,遇到相关错误…...

2026上海紧固件专业展观察:12.9级螺栓为何成为高端制造核心紧固方案?

2026第十六届上海紧固件专业展(Fastener Expo Shanghai 2026)将于6月24日至26日在上海国家会展中心举办。作为紧固件行业的重要展示窗口,本届展会将集中呈现高强度紧固件的发展趋势,其中12.9级螺栓已成为当前制造业升级的重要标志…...

美国人形机器人发展浅析

美国人形机器人产业正从实验室研发向工业实用化与商业化加速过渡,主要企业(波士顿动力、特斯拉、Figure AI等)均已推出量产级产品,覆盖工业制造、军事应用等核心场景,技术迭代与规模化部署成为当前行业关键词。一、主要…...

GLM-4v-9b效果展示:学术海报截图→研究方法/结果/结论三段式结构化提取

GLM-4v-9b效果展示:学术海报截图→研究方法/结果/结论三段式结构化提取 1. 模型能力概览 GLM-4v-9b是智谱AI在2024年推出的开源多模态模型,拥有90亿参数,专门处理文本和图像的联合理解任务。这个模型最大的特点是能够同时看懂图片和文字&am…...

构建语音搜索引擎:FireRedASR Pro与Elasticsearch整合实践

构建语音搜索引擎:FireRedASR Pro与Elasticsearch整合实践 你有没有想过,对着手机说句话,就能从海量文档里精准找到你想要的信息?比如,在公司的知识库里,直接问“上季度华东区的销售数据报告在哪&#xff…...

SDXL-Turbo实战教程:从A futuristic car到motorcycle的删改逻辑教学

SDXL-Turbo实战教程:从A futuristic car到motorcycle的删改逻辑教学 获取更多AI镜像 想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域&#xff0c…...

3步掌握Vortex:让250+游戏模组管理像专业开发者一样简单

3步掌握Vortex:让250游戏模组管理像专业开发者一样简单 【免费下载链接】Vortex Vortex: Nexus-Mods开发的游戏模组管理器,用于简化模组的安装和管理过程。 项目地址: https://gitcode.com/gh_mirrors/vor/Vortex 价值定位:重新定义游…...