用 vue3 中的 reduce(累加器) 随机生成100个字母,放入数组中,统计每个字母出现的次数
一、首先不用 reduce() 来实现
代码如下:
<template lang="">
<div>
<h1>统计每个字母出现的次数,不使用reduce(累加器)</h1>
<p><span>注意:</span> 亲,看控制台哦!</p>
</div>
</template>
<script lang="ts">
import { reactive } from 'vue'; export default {
setup() {
// 生成随机数的封装好的方法
function random(min:any, max:any) {
return Math.floor(Math.random() * (max - min)) + min;
}
// 26个字母
const abc = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
// 生成100个随机字母
let abcbox:Array<string> = reactive([])
function creabc(){
for (let i = 0; i <= 99; i++) {
// 添加随机字母进数组,随机数从第一个数开始,到最后一个数(26个字母)
abcbox.push(abc[random(0,25)])
}
console.log(abcbox);
}
// 调用方法
creabc() ////////////////////////////////////////////////////////////////////////////////////////////////////// // 统计每一个字母的数量
let coout1 = {}
// for循环 原理实现
function tongji () {
for (let i = 0; i<abcbox.length;i++) { // 1.首先,循环100个字母,;比如随机之后的字母为a
if(coout1[abcbox[i]] === undefined){ // 判断数量1的对象里面的属性如果为空的话 (首次出现的字母不是a话就为空)
coout1[abcbox[i]] = 1 // 就把a字母存进 coout1 的对象里面 数量 = 1
} else {
coout1[abcbox[i]]++
}
}
console.log(coout1);
}
// 调用方法
tongji() }
}
</script>
<style scoped>
span{
color: red;
font-weight: bold;
}
</style>
二、用 reduce() 来实现
代码如下:
<template lang="">
<div>
<h1>统计每个字母出现的次数,使用reduce(累加器)</h1>
<p><span>注意:</span> 亲,看控制台哦!</p>
</div>
</template>
<script lang="ts">
import { reactive } from 'vue'; export default {
setup() { function random(min:any, max:any) {
return Math.floor(Math.random() * (max - min)) + min;
}
const abc = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
// 生成100个随机字母
let abcbox:Array<string> = reactive([])
function creabc(){
for (let i = 0; i <= 99; i++) {
// 添加随机字母进数组
abcbox.push(abc[random(0,25)])
}
console.log(abcbox);
}
creabc() ////////////////////////////////////////////////////////////////////////////////////////////////////// // 统计每一个字母的数量
let coout1 = null
/**
* 累加器原理:[{},1,2,4,34,3,34] (在前面定义一个空对象,第一次是1和空对象比,第二次是1和2比,第三次是2和4比)
*/
function tongji () {
// 传入的两个参数:第一个数据,下一个数据
coout1 = abcbox.reduce(function(prev, next) {
prev[next] = (prev[next] + 1) || 1;
return prev;
}, {});
console.log(coout1);
}
tongji()
}
}
</script>
<style scoped>
span{
color: red;
font-weight: bold;
}
</style>
用 vue3 中的 reduce(累加器) 随机生成100个字母,放入数组中,统计每个字母出现的次数的更多相关文章
- java 将MySql数据库中的数据(某一列)取出放入数组中 转
转:http://blog.csdn.net/ewili/article/details/8605638 假设mysql中test数据库中有个表式score,有数据,我只取第一列的数据出来: publ ...
- PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。
Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...
- java通过文件路径读取该路径下的所有文件并将其放入list中
java通过文件路径读取该路径下的所有文件并将其放入list中 java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...
- .Net中把图片等文件放入DLL中,并在程序中引用
原文:.Net中把图片等文件放入DLL中,并在程序中引用 [摘要] 有时我们需要隐藏程序中的一些资源,比如游戏,过关后才能看到图片,那么图片就必须隐藏起来,否则不用玩这个游戏就可以看到你的图片了,呵呵 ...
- 现有1~100 共一百个自然数,已随机放入一个有98个元素的数组a[98].要求写出一个尽量简单的方案找出没有被放入数组的那2个数,并在屏幕上打印这2个数
void test7() { try { ]; ]; ]; ; ; int i; ; i < num.Length; i++) { num[i] = i + ; num1[i] = i + ;/ ...
- tuple放入dict中
tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...
- 在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可
在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可
- 在主方法中定义一个大小为50的一维整型数组,数组i名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行
package hanqi; import java.util.Scanner; public class Test7 { public static void main(String[] args) ...
- 用MT.exe将exe中的manifest文件提取出来和将manifest文件放入exe中
前一种方法是将manifest文件放入exe中,但是要记得需要在工程中设置 这样的话exe中就不存在manifest了,在debug目录下就会看到相应的manifest文件.后者是将exe中的man ...
- pyqt字符串分离开,放入列表中
string1 = ''''' the stirng Has many line In THE fIle ''' list_of_string = string1.split() print list ...
随机推荐
- Jenkins+SpringCloud(多模块)+Vue项目详细配置
一.Jenkins安装及所需插件安装 安装过程略. 我这用到工具包括JDK.Git.Maven.NodeJS:可以选择自行在服务器安装,也可以通过Jenkins自动安装,位置在系统管理 >全局工 ...
- Kingbase V8R6存储过程变量数据导出到操作系统文件
Kingbase V8R6存储过程变量数据导出到操作系统文件 说明: KingbaseES V8R6如何将自定义过程中的变量数据导出到操作系统文件中. 本次案例数据库版本: test=# select ...
- KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(二)
案例二:测试'recovery = automatic' 1.查看集群节点状态信息: [kingbase@node1 bin]$ ./repmgr cluster show ID | Name | R ...
- ORM增删改查并发性能测试
这两天在对一些ORM进行性能测试(涉及SqlSugar.FreeSql.Fast.Framework.Dapper.LiteSql),测试用的是Winform程序,别人第一眼看到我的程序,说,你这测试 ...
- 《Markdown常用语法及快捷键》
Markdown常用语法及快捷键 [```]+空格--代码格式 [---]+空格--水平分割线 [&emsp]+[;]--空格 [shift]+[tab]--清除当前行的格式
- Kubernetes 监控--PromQL
Prometheus 通过指标名称(metrics name)以及对应的一组标签(label)唯一定义一条时间序列.指标名称反映了监控样本的基本标识,而 label 则在这个基本特征上为采集到的数据提 ...
- Kibana探索数据(Discover)
总结说明: 1.先在Management/Kibana/Index Patterns 界面下添加索引模式(前提是有索引数据) 2.在Discover界面选中响应的索引模式 3.开启Kibana 查询语 ...
- PPR的断管
1. 小管径PPR管的断管 2. 大管径PPR管的断管
- DophineSheduler上下游任务之间动态传参案例及易错点总结
作者简介 淡丹 数仓开发工程师 5年数仓开发经验,目前主要负责百得利MOBY新车业务 二手车业务及售后服务业务系统数仓建设 业务需求 在ETL任务之间调度时,我们有的时候会需要将上游的 ...
- 教程:Android手机安装Debian+Wine,打造完全开源的兼容Windows的GNU/Linux!
构建好的系统下载见这里: https://www.cnblogs.com/tubentubentu/p/16721884.html 测试的Android版本: 10 首先下载安装Real VncVie ...