用JS代码实现表格多个单元格同时重复对应的数值求和,再生成数组

时间: 2024-05-05 12:18:56 浏览: 9
我理解了,下面是我给您提供的 JS 代码实现表格多个单元格同时重复对应的数值求和,再生成数组的过程: ```javascript // 获取表格中的所有单元格 const cells = document.querySelectorAll('td'); // 定义一个 Map 用于记录每个单元格的数值以及出现次数 const map = new Map(); // 遍历每个单元格,将相同的数值进行累加操作 cells.forEach(cell => { const value = cell.textContent.trim(); if (map.has(value)) { map.set(value, map.get(value) + 1); } else { map.set(value, 1); } }); // 将每个数值需要重复的次数计算出来,并将每个数值和对应次数组成一个二元数组 const array = Array.from(map.entries()).flatMap(([value, count]) => { return Array(count).fill(value); }); console.log(array); // 输出的结果如下所示,即为对应数值重复出现的数组:["1", "1", "2", "2", "2", "3", "3", "4"] ``` 以上就是我基于您的要求,提供的示例代码,希望能够帮助您解决问题。
相关问题

js选择表格多个单元格滑动选择

可以使用以下代码实现表格多个单元格滑动选择的功能: ```javascript let isMouseDown = false; let startRowIndex, startCellIndex, endRowIndex, endCellIndex; const cells = document.querySelectorAll('table td'); // 鼠标按下事件 document.addEventListener('mousedown', (event) => { isMouseDown = true; startRowIndex = event.target.parentNode.rowIndex; startCellIndex = event.target.cellIndex; }); // 鼠标移动事件 document.addEventListener('mousemove', (event) => { if (!isMouseDown) return; endRowIndex = event.target.parentNode.rowIndex; endCellIndex = event.target.cellIndex; selectCells(); }); // 鼠标松开事件 document.addEventListener('mouseup', () => { isMouseDown = false; }); // 选择单元格 function selectCells() { for (let i = 0; i < cells.length; i++) { const cell = cells[i]; const rowIndex = cell.parentNode.rowIndex; const cellIndex = cell.cellIndex; const isBetweenRows = (startRowIndex <= rowIndex && rowIndex <= endRowIndex) || (endRowIndex <= rowIndex && rowIndex <= startRowIndex); const isBetweenCells = (startCellIndex <= cellIndex && cellIndex <= endCellIndex) || (endCellIndex <= cellIndex && cellIndex <= startCellIndex); if (isBetweenRows && isBetweenCells) { cell.classList.add('selected'); } else { cell.classList.remove('selected'); } } } ``` 这段代码会对页面上所有的表格单元格添加多选功能。当用户按下鼠标时,会记录下当前单元格的行和列索引,当用户移动鼠标时,会根据当前单元格的行和列索引来选择多个单元格并高亮显示。最后,当用户松开鼠标时,多选功能结束。

arcgis10.22工具箱脚本实现批量选择多个字段进行字段属性导出自定义表格边线单元格代码

以下是使用ArcGIS 10.2.2工具箱脚本实现批量选择多个字段进行字段属性导出自定义表格,并添加边线单元格代码的步骤: 1. 打开ArcMap,并在Catalog面板中展开您的工作空间。 2. 创建一个新的Python脚本工具,并将其添加到工具箱中。 3. 编辑Python脚本,并导入所需的模块和库,例如arcpy、os和xlwt。 4. 定义输入参数,例如要素类或表格的路径和名称,以及要导出的字段列表。 5. 在脚本中,使用arcpy.MakeTableView_management函数创建一个表格视图。 6. 使用arcpy.TableToExcel_conversion函数将表格视图转换为Excel工作表。 7. 使用xlwt库打开Excel工作表,并使用所需的边线单元格代码进行格式化。 8. 将Excel工作表保存到输出目录中。 以下是一个示例脚本,用于批量选择多个字段进行字段属性导出自定义表格,并添加边线单元格代码: ```python import arcpy import os import xlwt # 定义输入参数 input_table = arcpy.GetParameterAsText(0) output_excel = arcpy.GetParameterAsText(1) field_list = arcpy.GetParameterAsText(2).split(";") # 创建表格视图 arcpy.MakeTableView_management(input_table, "table_view", "", "", field_list) # 导出表格视图到Excel arcpy.TableToExcel_conversion("table_view", output_excel) # 打开Excel文件并添加边线单元格代码 workbook = xlwt.Workbook(encoding="utf-8") worksheet = workbook.add_sheet("Sheet1") with open(output_excel, "wb") as file: for r, row in enumerate(worksheet.get_rows()): for c, col in enumerate(row): if r == 0: col.font.bold = True col.alignment.wrap = 1 col.alignment.horz = xlwt.Alignment.HORZ_CENTER col.alignment.vert = xlwt.Alignment.VERT_CENTER if r == 0 or c == 0: col.borders.bottom = xlwt.Borders.THIN col.borders.right = xlwt.Borders.THIN elif r == len(worksheet.get_rows()) - 1 or c == len(row) - 1: col.borders.top = xlwt.Borders.THIN col.borders.left = xlwt.Borders.THIN else: col.borders.top = xlwt.Borders.THIN col.borders.left = xlwt.Borders.THIN col.borders.bottom = xlwt.Borders.THIN col.borders.right = xlwt.Borders.THIN workbook.save(file) ``` 注意:此示例脚本仅提供了基本的框架和代码示例,并未进行充分测试和验证。使用前请根据您的要求进行修改和优化。

相关推荐

最新推荐

recommend-type

JS实现动态修改table及合并单元格的方法示例

主要介绍了JS实现动态修改table及合并单元格的方法,结合完整实例形式分析了JS动态遍历及修改table单元格的具体操作技巧,需要的朋友可以参考下
recommend-type

jquery miniui 教程 表格控件 合并单元格应用

表格:合并单元格 参考示例:合并单元格 调用方法:margeCells。如下代码: 代码如下: grid.on(“load”, onLoad); function onLoad(e) { var grid = e.sender; var marges = [ { rowIndex: 1, columnIndex: 0, ...
recommend-type

JS拖动选择table里的单元格完整实例【基于jQuery】

主要介绍了JS拖动选择table里的单元格,结合完整实例形式分析了基于jQuery的table表格动态操作相关实现技巧,涉及事件响应及页面元素属性动态操作使用方法,需要的朋友可以参考下
recommend-type

C# listview添加combobox到单元格的实现代码

从别处转来的,自己进行了一些小的修改,还不错,你自己先拖一个ListView1和一个ComboBox1,需要的朋友可以参考下
recommend-type

优雅的elementUI table单元格可编辑实现方法详解

主要介绍了优雅的elementUI table单元格可编辑实现方法详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。