JS实现统计字符串中权重最大的单词及出现次数

本文介绍了一个用于统计英文文章中单词出现频率的程序。通过分析输入的字符串,该程序能够计算每个单词的出现次数,并根据单词长度和出现次数的乘积得出权重。最终输出权重最高的单词及其出现次数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以字符串形式提供给你一段英文文章,请编写一个程序。该程序将统计指定字符串中每个单词出现的次数。同时定义单词的长度和出现次数的乘积作为权重,程序最终需要输出权重最高的单词以及其出现的次数。

比较暴力的写法

function test(string) {
            let arr = string.split(".");
            let arr1 = [];
            let arr2 = [];
            let newArr;
            for (let i = 0; i < arr.length; i++) {
                arr1.push(arr[i].split(","));
                for (let j = 0; j < arr[i].split(",").length; j++) {
                    arr2.push(arr1[i][j].split(" "));
                }
            }
            newArr = arr2.flat(Infinity);
            newArr.pop(newArr.length);

            let result = 0;
            let times = 0;
            let resultArr = [];
            let timesArr = [];
            for (let i = 0; i < newArr.length; i++) {
                for (let j = 0; j < newArr.length; j++) {
                    if (newArr[i] === newArr[j]) {
                        times += 1;
                    }
                }
                timesArr.push(times);
                times = 0;
                result = 0;
            }
            for (let i = 0; i < timesArr.length; i++) {
                resultArr.push(timesArr[i] * newArr[i].length);
            }

            let max = 0;
            max = Math.max(...resultArr);

            let a = resultArr.indexOf(max);


            console.log(newArr[a]);
            console.log(timesArr[a])
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值