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

设计建设网站公司网站怎样做竞价推广

设计建设网站公司网站,怎样做竞价推广,管理咨询公司怎么找客户,河南网站建设路方案一 这段代码的功能是根据用户选择的行和列数据,生成一个适合复制粘贴的字符串表格。代码会先按列的 id 从小到大排序,再根据行列的选择关系将数据按顺序填入表格,每行之间使用换行符分隔,每列之间使用制表符分隔。如果某一行…

方案一

这段代码的功能是根据用户选择的行和列数据,生成一个适合复制粘贴的字符串表格。代码会先按列的 id 从小到大排序,再根据行列的选择关系将数据按顺序填入表格,每行之间使用换行符分隔,每列之间使用制表符分隔。如果某一行缺少对应列的数据,则在该位置插入空格。

注意事项

  1. 列排序:代码先根据 id 对所选列数据进行排序,确保生成的表格中列顺序一致。
  2. 行列对应关系:每列数据包含一个 _X_ROW_KEY 属性,表示它对应的行。代码会检查列和行的 _X_ROW_KEY 是否匹配,只有匹配的列才会填入数据,否则填入空位。
  3. 空位占位:如果某行在某列没有数据,为了保持列对齐,会插入空字符串。

代码字段解释

  • selectedRows:用户选择的行数据,每行数据代表一个完整的数据对象,其中包含了字段 idnamesex 等字段,并用 _X_ROW_KEY 标记它属于哪一行。
  • selectedColumns:用户选择的列数据,每列包含 field(对应行的字段)、title(列标题)、id(列的唯一标识)等属性。_X_ROW_KEY 数组标记该列在哪些行中有数据。
  • sortedColumns:排序后的列数组,确保列输出时按 id 的升序排列。

代码实现

// 所选行数据
const selectedRows = [{ "id": 1, "name": "张三", "age": 30, "sex": "男", "job": "前端", "address": "中国xxxxxxxxxx", "_X_ROW_KEY": "row_8" },{ "id": 2, "name": "李四", "age": 30, "sex": "男", "job": "后端", "address": "中国xxxxxxxxxx", "_X_ROW_KEY": "row_10" }
];// 所选列数据
const selectedColumns = [{ "property": "name", "field": "name", "title": "姓名", "width": 100, "fixed": "left", "align": "left", "filterMultiple": true, "id": "col_09", "_X_ROW_KEY": ["row_8"] },{ "property": "job", "field": "job", "title": "职务", "width": 100, "fixed": "left", "align": "left", "filterMultiple": true, "id": "col_34", "_X_ROW_KEY": ["row_10"] },{ "property": "address", "field": "address", "title": "地址", "width": 100, "fixed": "left", "align": "left", "filterMultiple": true, "id": "col_35", "_X_ROW_KEY": ["row_10","row_8"] },{ "property": "sex", "field": "sex", "title": "性别", "width": 100, "fixed": "left", "align": "left", "filterMultiple": true, "id": "col_10", "_X_ROW_KEY": ["row_8","row_10"] }
];// 组装数据结构并生成拼接字符串
function assembleSelectedDataString(selectedRows, selectedColumns) {// 对 selectedColumns 按列的 id 从小到大排序,确保输出中列的顺序一致const sortedColumns = selectedColumns.sort((a, b) => parseInt(a.id.replace("col_", "")) - parseInt(b.id.replace("col_", "")));// 初始化一个空数组,用来存储每一行的拼接数据const rows = [];// 遍历行数据,对每一行处理一次selectedRows.forEach(row => {const rowKey = row._X_ROW_KEY; // 获取当前行的唯一标识符,用来匹配列数据const rowData = []; // 存储当前行对应的每列数据// 遍历排序后的列数据,保证列顺序输出正确sortedColumns.forEach(column => {// 检查当前列是否包含该行数据的 _X_ROW_KEYif (column._X_ROW_KEY.includes(rowKey)) {// 如果列的 _X_ROW_KEY 包含当前行的 rowKey,则插入对应的字段值rowData.push(row[column.field]);} else {// 如果不包含,则插入空字符串,占位使列对齐rowData.push("");}});// 将当前行数据(用制表符连接每列数据)添加到 rows 数组中rows.push(rowData.join("\t"));});// 将所有行数据连接成一个字符串,每行之间用换行符分隔return rows.join("\n");
}// 调用函数获取拼接后的字符串
const selectedDataString = assembleSelectedDataString(selectedRows, selectedColumns);
console.log(selectedDataString);

示例输出

张三	男		中国xxxxxxxxxx男	后端	中国xxxxxxxxxx

方案二

这段代码的目的是根据输入的行数据和列数据生成一个格式化的字符串,字符串中的列使用制表符 (\t) 分隔,行使用换行符 (\n) 分隔,方便输出和阅读。每一列的数据会根据最大列宽对齐,以确保输出的格式整齐。

const data = [{ "rowIndex": 2, "columnIndex": 5, "value": "2218123959094757194" },{ "rowIndex": 2, "columnIndex": 6, "value": "2-6" },{ "rowIndex": 3, "columnIndex": 5, "value": "2218123959094757194" },{ "rowIndex": 3, "columnIndex": 6, "value": "3-6" },{ "rowIndex": 4, "columnIndex": 5, "value": "2218123959094757194" },{ "rowIndex": 4, "columnIndex": 6, "value": "4-6" },{ "rowIndex": 5, "columnIndex": 5, "value": "2218123959094757194" },{ "rowIndex": 5, "columnIndex": 6, "value": "5-6" },{ "rowIndex": 6, "columnIndex": 5, "value": "2218123959094757194" },{ "rowIndex": 7, "columnIndex": 7, "value": "7-7-7-7-7-7" },{ "rowIndex": 7, "columnIndex": 8, "value": "7-8-7-8-7-8" },
];// 定义一个函数,用于生成格式化的表格字符串
function generateCompactTableString(data) {// 计算表格的最大行索引const maxRow = Math.max(...data.map(item => item.rowIndex));// 提取所有列索引并去重、排序,得到一个有序的列索引数组const columnIndices = Array.from(new Set(data.map(item => item.columnIndex))).sort((a, b) => a - b);// 创建一个二维数组,用于存储每个单元格的内容// 行数为 maxRow + 1,列数为 columnIndices 的长度,初始化为空字符串const table = Array.from({ length: maxRow + 1 }, () => Array(columnIndices.length).fill(""));// 遍历输入数据,将值填入对应的表格位置data.forEach(item => {const { rowIndex, columnIndex, value } = item; // 解构出行索引、列索引和值const colIndex = columnIndices.indexOf(columnIndex); // 找到列索引在表格中的位置if (colIndex !== -1) { // 如果该列索引存在table[rowIndex][colIndex] = value; // 将值填入表格}});// 计算每列的最大宽度,以便后续对齐const columnWidths = columnIndices.map((_, colIndex) => Math.max(...table.map(row => row[colIndex].length)) // 计算每列的最大字符长度);// 过滤掉空行const nonEmptyRows = table.filter(row => row.some(cell => cell !== "")); // 只保留至少有一个非空单元格的行// 将表格内容转换为字符串,用制表符分隔列return nonEmptyRows.map(row => row.map((cell, colIndex) => cell.padEnd(columnWidths[colIndex]) // 确保每列宽度一致,使用空格填充).join("\t") // 用制表符连接列).join("\n"); // 用换行符连接行
}// 输出格式化后的表格字符串
const compactTableString = generateCompactTableString(data);
console.log(compactTableString); // 打印输出结果

各字段解释

  1. data:一个包含多个对象的数组。每个对象代表一个单元格的数据,包含以下字段:

    • rowIndex:表示数据所在的行索引(从0开始计数)。
    • columnIndex:表示数据所在的列索引(从0开始计数)。
    • value:该单元格要显示的内容。
  2. generateCompactTableString(data):一个函数,用于生成格式化的表格字符串。

    • 参数data,上面定义的数组。
    • 返回值:格式化后的表格字符串,列用制表符分隔,行用换行符分隔。
  3. maxRow:通过遍历 data 数组,找出最大的 rowIndex 值,以确定表格的行数。

  4. columnIndices:使用 Set 来提取并去重所有的 columnIndex,然后将其排序,得到一个有序的列索引数组。

  5. table:一个二维数组,用于存储每个单元格的内容。它的行数为 maxRow + 1,列数为 columnIndices 的长度,初始时填充为空字符串。

  6. padEnd:用于确保每列的宽度一致,通过在每个单元格内容后面填充空格。

http://www.15wanjia.com/news/181839.html

相关文章:

  • 要制作自己的网站需要什么济南网站建设推荐q479185700强涵
  • 电子商务网站建设与综合实践网站建设初稿
  • 网站开发技术对比品网站建设
  • 旅游网站设计模板图片简单的网站php开发教程
  • 无锡梅村网站建设佛山市企业网站建设哪家好
  • 网站建设业务客户来源廉政建设网评文章网站
  • 天津黑曼巴网站建设门户网站什么意思
  • 电子商务网站的管理建站行业获客
  • 无障碍网站开发全屋定制加盟品牌加盟网
  • 知名室内设计网站做视频类网站需要哪些许可证
  • 如何免费做网站推广服务器租用多少钱一月
  • 网站建设 百度文库地方网站系统
  • 搞一个公司网站得多少钱wordpress 地址调用
  • 兰州网站建设哪家好公众号开发技术风险
  • 用php制作一个个人信息网站wordpress免费汽车配件企业主题
  • 风景旅游网站建设的设计思路巴中企业网站建设
  • 做挂的网站郑州网站建设知乎
  • 门户网站系统架构资源分享wordpress
  • jsp体育用品网站建设crm管理系统登录
  • 济南网站制作公司wordpress自动选择添加标签页
  • 网站建设在整体布局有哪些要求彩票网站模版
  • aspcms 网站无法显示该页面免费跨境电商网站
  • 高密做网站佛山新网站制作公司
  • 网站内页的设计网络设计工程师是做什么的
  • 上海seo网站优化个人免费发布房源信息
  • 网站建设 淘宝描述psd万象城网站建设
  • 招网站开发人员杭州做网站多少钱
  • 安顺市住房与城乡建设局网站担保公司网站建设方案
  • 一级a做爰电影免费观看网站中国500强企业排名完整版
  • 网站建设公司招人现在建设校园网站用什么软件