SAP Fiori开发中的JavaScript基础知识18 - 统计字符串中字符出现的频率

1. 题目说明

给定一个字符串,计算字符串中每个字符出现的频率,并打印结果。

举例:若给定字符串为hello, 则需要输出:‘h’:1 ; ‘e’:1; ‘l’:2; ‘o’:2;
也即,在字符串hello,字符h出现1次,字符e出现2次,以此类推。

2. 代码实现

先定义一个全局变量oResult对象来存储运行的结果,我们预期将结果存储中键值对的形式。

定义函数countLetters( )来完成字符串内的统计逻辑,函数processLetter( )封装了对象oResult的键值对构建过程。

函数printResult( )完成结果的打印。

// define global variables
var oResult = {};

function countLetters(sTextToProcess) {
    var sNormalized = sTextToProcess.toLowerCase(); // this is local variable
    for (var i = 0; i < sNormalized.length; i++) {
        processLetter(sNormalized[i]);
    }
}

function processLetter(cLetter) {
    if (oResult[cLetter]) {
        oResult[cLetter]++;
    } else {
        oResult[cLetter] = 1;
    }
}

function printResult() {
    var sOutput = "";
    for (var prop in oResult) {
        if (oResult.hasOwnProperty(prop)) {
            sOutput += " '" + prop + "': " + oResult[prop] + "; ";
        }
    }
    console.log(sOutput);
}

// test
countLetters("Hello World");
printResult();               //输出: 'h': 1;  'e': 1;  'l': 3;  'o': 2;  ' ': 1;  'w': 1;  'r': 1;  'd': 1; 

在此例中,我们使用了全局变量,一般而言,使用全局变量的情况有:

  • 当多个函数需要共享相同的数据时,可以使用全局变量来存储这些数据。
  • 当需要在不同的函数之间传递数据时,可以使用全局变量作为中介。

使用局部变量的情况:

  • 当某个变量只在特定的函数内部使用时,可以使用局部变量来限制其作用范围,避免命名冲突和意外修改。

需要注意的是,过多地使用全局变量可能导致命名冲突和代码维护困难,因此应尽量避免滥用全局变量,而是优先使用局部变量。

3. 小结

本文通过一个示例,练习了JavaScript中的对象,函数和封装的概念,并辨析了全局变量和局部变量的使用场景。希望本文对你有帮助!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十年铸器

给作者赏杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值