一、首先不用 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个字母,放入数组中,统计每个字母出现的次数的更多相关文章

  1. java 将MySql数据库中的数据(某一列)取出放入数组中 转

    转:http://blog.csdn.net/ewili/article/details/8605638 假设mysql中test数据库中有个表式score,有数据,我只取第一列的数据出来: publ ...

  2. PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

    Python 练习 标签: Python Python练习题 Python知识点 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的 ...

  3. java通过文件路径读取该路径下的所有文件并将其放入list中

    java通过文件路径读取该路径下的所有文件并将其放入list中   java中可以通过递归的方式获取指定路径下的所有文件并将其放入List集合中.假设指定路径为path,目标集合为fileList,遍 ...

  4. .Net中把图片等文件放入DLL中,并在程序中引用

    原文:.Net中把图片等文件放入DLL中,并在程序中引用 [摘要] 有时我们需要隐藏程序中的一些资源,比如游戏,过关后才能看到图片,那么图片就必须隐藏起来,否则不用玩这个游戏就可以看到你的图片了,呵呵 ...

  5. 现有1~100 共一百个自然数,已随机放入一个有98个元素的数组a[98].要求写出一个尽量简单的方案找出没有被放入数组的那2个数,并在屏幕上打印这2个数

    void test7() { try { ]; ]; ]; ; ; int i; ; i < num.Length; i++) { num[i] = i + ; num1[i] = i + ;/ ...

  6. tuple放入dict中

    tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...

  7. 在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可

    在查询时将查询条件放入Session中,导出时直接根据qpniRGaFiler取查询条件即可

  8. 在主方法中定义一个大小为50的一维整型数组,数组i名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行

    package hanqi; import java.util.Scanner; public class Test7 { public static void main(String[] args) ...

  9. 用MT.exe将exe中的manifest文件提取出来和将manifest文件放入exe中

     前一种方法是将manifest文件放入exe中,但是要记得需要在工程中设置 这样的话exe中就不存在manifest了,在debug目录下就会看到相应的manifest文件.后者是将exe中的man ...

  10. pyqt字符串分离开,放入列表中

    string1 = ''''' the stirng Has many line In THE fIle ''' list_of_string = string1.split() print list ...

随机推荐

  1. MongoDB,入门看这一篇足矣!

    一.介绍 在介绍 MongoDB 之前,我先介绍一下业务开发的时候遇到的痛点,以便大家对它有一个更加清晰的认识! 最近在用数据库存储数据的时候发现这么一个坑,例如从消息队列中监听消息的时候,原来的做法 ...

  2. Java使用定时任务详解

    定时任务 目录 定时任务 SpringBoot定时任务 默认单线程 使用异步多线程 Spring定时任务XML配置(注解形式几乎同上) 使用springTask: ----springTask为spr ...

  3. C语言:多功能计算器

    好家伙,这个东西有点折磨 这是一个多功能计算器 #include<stdio.h> #include<math.h> #include<windows.h> voi ...

  4. C++工厂方法模式讲解和代码示例

    在C++中使用模式 使用示例: 工厂方法模式在 C++ 代码中得到了广泛使用. 当你需要在代码中提供高层次的灵活性时, 该模式会非常实用. 识别方法: 工厂方法可通过构建方法来识别, 它会创建具体类的 ...

  5. 典型C内存空间分布图

    下图是一个典型的C内存空间分布图 这是Linux下32位环境的用户空间内存分布情况 内核空间 :一部分核心软件独立于普通应用程序,运行在较高的特权级别上,驻留在被保护的内存空间上,拥有访问硬件设备的所 ...

  6. 阿里druid-spring-boot-starter 配置,个人整理以及遇到的问题(防止之后找不到)

    ​ 简介,什么是Druid Druid是阿里巴巴开源平台上的一个项目,整个项目由数据库连接池.插件框架和SQL解析器组成.该项目主要是为了扩展JDBC的一些限制,可以让程序员实现一些特殊的需求,比如向 ...

  7. LibreCAD常用命令

    目录 常见命令 常见命令 .text_center { text-align: center } \3cp>.text_left { } 动作命令 命令 绘制直线 相对坐标系 @长度<角度 ...

  8. KingbaseES通过sys_waldump解析wal日志

    前言 oracle中的redo日志我们无法直接读取,然而对于KingbaseES数据库,我们可以利用sys_waldump工具解析wal日志,查看wal日志记录的信息. 我们可以利用 sys_wald ...

  9. 快速排序C语言版图文详解

    ​ 算法原理:选一个数位基准,将序列分成两个部分,一边全是比它小序列,另一边全是比它大序列.然后再分别对比他小的序列和比再次进行基准分割.依次分割下去,得到一个有序的队列. 原理图示: ​编辑 ​编辑 ...

  10. std:move() 作用 和 移动语义后 右值行为,unique_ptr的"移动"操作问题

    unique_ptr 不能进行赋值操作,但是可以有返回unique_ptr的函数,由此产生的问题: 结论1:std:move() 只是将一个实参强行转换为右值引用. 我们知道对象初始化时有 构造函数, ...