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

ts 将100个元素,每行显示9个元素,然后显示出所有行的元素,由此我们延伸出一个项目需求的简单算法实现。

1、先看一下baidu ai出的结果:

2、我们将上面的代码修改下,定义一个数组,然后记录每行的行号及相应的元素:

<template><div>console</div>
</template>
<script setup lang="ts">
import { onMounted, reactive } from "vue";
const list = reactive([] as any[]);
function printRows(elementsCount: number, elementsPerRow: number): void {const rowsCount = Math.ceil(elementsCount / elementsPerRow);for (let i = 0; i < rowsCount; i++) {let row = "";for (let j = 0; j < elementsPerRow; j++) {const elementIndex = i * elementsPerRow + j;if (elementIndex < elementsCount) {row += `${elementIndex}, `;} else {break; // 超出元素总数,退出内层循环}}list.push({row: i,rowElements: row,});// console.log(row.trim().replace(/, $/, "")); // 移除末尾的逗号并打印}for(let i = 0; i < list.length; i++){console.log(list[i].row, list[i].rowElements)}
}onMounted(() => {printRows(100, 9);
});
</script>

3、我们再将上面的代码优化下,让其存对象。

代码:
 

<template><div>console</div>
</template>
<script setup lang="ts">
import { onMounted, reactive } from "vue";
const list = reactive([] as any[]);
function printRows(sourceList, elementsPerRow: number) {let elementsCount = sourceList.length;const rowsCount = Math.ceil(elementsCount / elementsPerRow);for (let i = 0; i < rowsCount; i++) {// let row = "";let rowList = [];for (let j = 0; j < elementsPerRow; j++) {const elementIndex = i * elementsPerRow + j;if (elementIndex < elementsCount) {rowList.push(sourceList[elementIndex]);} else {break; // 超出元素总数,退出内层循环}}list.push({row: i,rowElements: rowList,});// console.log(row.trim().replace(/, $/, "")); // 移除末尾的逗号并打印}for (let i = 0; i < list.length; i++) {console.log(list[i].row, list[i].rowElements);}
}onMounted(() => {printRows([{id: 1,name: "a",},{id: 2,name: "b",},{id: 3,name: "c",},{ id: 4, name: "d" },{id: 5,name: "e",},{id: 6,name: "f",},{id: 7,name: "g",},{id: 8,name: "h",},{id: 9,name: "i",},{id: 10,name: "j",},{id: 11,name: "k",},{id: 12,name: "l",},{id: 13,name: "m",},{id: 14,name: "n",},{id: 15,name: "o",},{id: 16,name: "p",},{id: 17,name: "q",},],9);
});
</script>

4、最后,项目有这样的需求:用户输入一串字符串,然后我们要根据串的情况,进行自动填到相应的位置上去,来达到整个canvas的输出,也就是达到输出到指定的位置上,但是用户输入情况比较复杂,所以我们就要根据canvas的宽度与高度来自动进行计算,最好我们就有了上面的处理。


http://www.mrgr.cn/news/69452.html

相关文章:

  • Centos使用人大金仓ksql
  • 网站架构知识之nginx第三天(day026 )
  • 吴恩达深度学习笔记(12)14
  • 将Docker中nginx静态资源目录映射到宿主机的某个目录及配置文件映射到宿主机
  • 暴雨信息推出电力大模型一体机
  • 优惠券秒杀的背后原理
  • 人工智能技术将逐步渗透到我们生活的每个角落
  • 探索C++中的常量定义:多种方式对比
  • 分布式锁实现方式
  • 深入理解 Vue 3 中的 Props
  • 2024年下半年系统分析师论文
  • 基于Multisim心率脉搏测量电路(含仿真和报告)
  • 数据结构:顺序表(动态顺序表)
  • 云计算在esxi 主机上创建 4g磁盘,同时在此磁盘上部署linux
  • 呼叫中心外呼主要用于哪些场景?
  • 编程新星挑战赛-题解
  • C/C++语言基础--C++模板与元编程系列四(类型模板参数、整数、指针 、模板类型)
  • Windows 11 安装 MySQL 8.4 LTS 详细安装配置教程(入门篇)
  • Cesium着色器的创意和方法(五——Polyline)
  • Linux中的用户创建及参数说明
  • nvm 切换 Node.js 版本
  • ElasticSearch向量检索技术方案介绍
  • Java异常处理
  • Android setContentView执行流程(一)-生成DecorView
  • AcWing 29:删除链表中重复的节点
  • 动态规划 —— dp 问题-买卖股票的最佳时机含冷冻期