利用JavaScript差集实现人员提交情况对比工具
作者:木棉时间:2026-10-24 13:25:45浏览:416
本文介绍如何利用JavaScript的Set对象特性,通过求差集的方法,快速对比两份名单并找出未提交材料的人员。文章包含完整的HTML页面结构与JS核心代码,适用于需要定期统计提交情况的场景,无需手动逐一核对。
前言与需求背景
前言
在日常工作中,经常需要每周统计人员提交材料的情况。为了避免手动复制粘贴和逐一查找的繁琐过程,我决定编写一个小工具来自动筛选出未提交材料的人员名单。
页面布局设计
首先进行页面布局设计。
HTML结构与样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
textarea {
/* border: none; */
width: 49%;
height: 400px;
/* font-size: 17pt; */
}
#btn {
width: 100%;
height: 50px;
position: relative;
top: 0px;
/* position: absolute; */
}
#p2 {
margin-left: 940px;
margin-top: -38px;
}
</style>
</head>
<body>
<button id="btn" class="ambi-light-button">对比</button>
<textarea id="txt" type="text" placeholder="应提交"></textarea>
<textarea id="txt2" type="text" placeholder="已提交"></textarea>
<hr>
<p>未提交</p>
<p id="p2">已提交未在人名单</p>
<textarea id="txt3" type="text" placeholder="未提交"></textarea>
<textarea id="txt4" type="text" placeholder="已提交未在人名单"></textarea>
</body>
</html>

界面外观可能不够美观,但这不影响其作为内部工具的实际使用价值。
JavaScript核心逻辑实现
接下来开始编写JavaScript核心逻辑代码。
差集算法与数据绑定
<script
//先把输入框,按钮获取一下
let txt = document.querySelector('#txt')
let txt2 = document.querySelector('#txt2')
let txt3 = document.querySelector('#txt3')
let txt4 = document.querySelector('#txt4')
let btn = document.querySelector('#btn')
//然后写一个数组去重求差集
const getDifference = function (a, b) {
//解释:如果传入的两个函数是数组
if (a.constructor === Array && b.constructor === Array) {
let set1 = new Set(a);
let set2 = new Set(b);
// 利用Set去重,筛选找到差值
return Array.from(new Set([...set1].filter(x => !set2.has(x))));
}
return null;
}
//简简单单给按钮来一个点击事件吧
btn.onclick = function () {
//应提交人名单
let Should_sub = txt.value.split('\n')
//未提交人名单
let already_sub = txt2.value.split('\n')
let l3 = getDifference(Should_sub, already_sub)
//未在人名单中提交人数
let l4 = getDifference(already_sub, Should_sub)
//筛选好的值反馈给页面的两个输入框
txt3.value = l3.join('\n')
txt4.value = l4.join('\n')
}
</script>
总结与扩展
总结
至此,关于利用JavaScript差集实现对比小工具的介绍已完成。如需了解更多相关JS差集应用或对比工具开发内容,可搜索本站往期文章或继续阅读后续相关推荐。感谢大家的支持!
作者最新文章
JS中将数组和对象混合组装为JSON字符串
2026-11-05 16:41:42
JS运算符优先级与结合性的区别是什么?
2026-11-05 13:22:02
JS Map怎么只遍历Key或Value
2026-11-05 13:00:36
D3.js 与 ECharts 选型对比:灵活性 vs 开发效率
2026-11-05 09:45:01
为什么JS中typeof []返回object:数组类型检测误区解析
2026-11-04 19:50:47
