Javascript-统计提交中连续单词的所有组合



我正在尝试计算提交文本区域中匹配字符串的所有组合。

例如:

美国加拿大英国澳大利亚日本印度

美国加拿大印度英国澳大利亚中国巴西法国

巴西法国澳大利亚中国

预期结果

2个连续单词字符串匹配:

UK Australia = 2
USA Canada = 2
Brazil France = 2
Australia China = 2

1个连续单词字符串匹配:

Canada UK = 1
Australia Japan = 1
Japan India = 1
India UK = 1
Australia China = 1
China Brazil = 1
France Australia = 1

我是个初学者,一想到它就头疼。

感谢您抽出时间,如果有人能帮助编写此函数或指示我使用任何现有的软件包,那将是非常棒的,我们将不胜感激。

你可以试试这个

var string = ['USA Canada UK Australia Japan India', 'USA Canada India UK Australia China Brazil France', 'Brazil France Australia China']
string = string.join(' ')
var words = string.split(' ')
var wordGroups = {}
for( let i=1; i< words.length; i++ ){
let key = words[ i-1 ]+ '_' + words[ i ]
if( !wordGroups[ key ]) {
wordGroups[ key ] = 0
}
wordGroups[ key ] = wordGroups[ key ] + 1
}
Object.keys( wordGroups ).forEach( key =>{
let word = key.replace('_', ' ');
console.log( word , ': ', wordGroups[ key ])
})

您可以这样做。。。。

const arrayOfWords = "USA Canada UK Australia Japan India USA Canada India UK Australia China Brazil France Brazil France Australia China".split(" ");
const arrayOfPairs=[];
for(let i = 0;i<arrayOfWords.length-1;i++){
arrayOfPairs.push(arrayOfWords.slice(i,i+2).join(" "));
}
/* console.log(arrayOfPairs); */
const obj = arrayOfPairs.reduce((arr,ele,index)=>{
if(arr[ele]){
arr[ele] += 1;
return arr;
}
arr[ele]=1;
return arr;
},{})
console.log(obj);

最新更新