【问题标题】:arranging words in an alphabetical order按字母顺序排列单词
【发布时间】:2021-09-02 08:55:01
【问题描述】:

我有一个问题,我有一个包含字符串的 text.file,此代码现在打印出单词并让我知道使用了多少相同的单词.. 有没有办法可以在 Node.js 环境中按字母顺序排列单词。

代码:

const { readFile, readFileSync } = require('fs');

let file = 'C:\\Users\\eeroj\\source\\repos\\Nodejs\\pish\\pish\\TextFile2.txt';

let words = "";

function countRepeatedWords(sentence) {
let words = sentence.split(" ");
let wordMap = {};

for (let i = 0; i < words.length; i++) {
    let currentWordCount = wordMap[words[i]];
    let count = currentWordCount ? currentWordCount : 0;
    wordMap[words[i]] = count + 1;
}
return wordMap;
}

words = readFileSync(file).toString();
console.log(countRepeatedWords(words)); 

【问题讨论】:

标签: javascript node.js text


【解决方案1】:

您可以使用Object.entries() 创建对象条目列表,然后使用Array.sort() 对它们进行键排序,然后使用Object.fromEntries() 创建排序映射:

const { readFileSync } = require('fs');

let file = 'C:\\Users\\eeroj\\source\\repos\\Nodejs\\pish\\pish\\TextFile2.txt';

function countRepeatedWords(sentence) {
    const wordMap = sentence.toLowerCase().split(" ").reduce((acc,cur) => { 
        acc[cur] = (acc[cur] || 0) + 1;
        return acc;
    }, {});

    // Sort the map alphabetically...
    const sortedEntries = Object.entries(wordMap).sort(([a,],[b,]) => a.localeCompare(b));
    const sortedWordMap = Object.fromEntries(sortedEntries);
    return sortedWordMap;
}

const words = readFileSync(file).toString();
console.log(countRepeatedWords(words));

还有一个 sn-p 来演示:

        
function countRepeatedWords(sentence) {
    const wordMap = sentence.toLowerCase().split(" ").reduce((acc,cur) => {
        acc[cur] = (acc[cur] || 0) + 1;
        return acc;
    }, {});

    // Sort the map alphabetically...
    const sortedEntries = Object.entries(wordMap).sort(([a,],[b,]) => a.localeCompare(b));
    const sortedWordMap = Object.fromEntries(sortedEntries);
    return sortedWordMap;
}

const words = `What a piece of work is a man How Noble in reason How infinite in faculty In form and moving how express and admirable In Action how like an Angel in apprehension how like a God The beauty of the world the paragon of animals and yet to me what is this quintessence of dust Man delights not me nor woman neither though by your smiling you seem to say so` ;
console.log(countRepeatedWords(words));
 

【讨论】:

    【解决方案2】:
    1. 您的数据是 wordMap = [{'word':'A'},{'word':'B'}, ...]
    wordMap.sort((a,b) => a.word - b.word);
    
    1. 您的数据是 wordMap = [A', 'B', ...]
    wordMap.sort();
    

    【讨论】:

      猜你喜欢
      • 2012-11-28
      • 2018-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-24
      • 1970-01-01
      相关资源
      最近更新 更多