我想使一个函数uniqueWordCount可以计算字符串(words.txt)中所有唯一的单词。返回答案后我应该可以得到答案,而我现在已经做了类似的事情:
let fs = require('fs');
function run() {
let text = fs.readFileSync('./words.txt', 'utf8');
return uniqueWordCount(text);
}
function uniqueWordCount(str) {
let count = 0;
let set = new Set();
let words = str.split (' ');
for(let i = 1; 1 < words.length; i++){
set.add(str[i]);
count = set.size;
}
return uniqueWordCount;
}
module.exports.run = run;
答案 0 :(得分:2)
使用webview = ( WebView ) findViewById( R.id.webview );
将字符串拆分为空格并将其设为集合。 Set将删除重复项。使用 String docc = "http://docs.google.com/gview?embedded=true&url="+yourURL;
webview.getSettings().setJavaScriptEnabled( true );
webview.getSettings().setPluginState( WebSettings.PluginState.ON );
webview.loadUrl( docc );
split()
答案 1 :(得分:0)
符合ES5和ES6的解决方案可以是:
"aabc adsd adsd hasd"
.split(/\b(?:\s+)?/)
.reduce(function(ac,d,i){!~ac.indexOf(d) && ac.push(d);return ac;},[]).length //return 3
答案 2 :(得分:-1)
Salary::where([
['year', '=', date('Y')],
['month', '<', date('m')]
])
->orWhere('year', '<', date('Y'))
->get()
答案 3 :(得分:-1)
要使uniqueWordCount
函数正常工作,您需要进行以下4个更改:
for-loop
而不是let i = 0
的{{1}}开始let i = 1
将始终为true,从而创建无限循环。将1 < words.length
替换为1
-> i
i < words.length
访问权限for-loop
中,不是words[i]
,因为str[i]
是您的单词数组,words
只是您的原始字符串。str
是一个函数,但是您需要返回uniqueWordCount
,该变量存储您的集合count
。这是您的函数现在的外观:
size
注意:您可以并且很可能应该摆脱function uniqueWordCount(str) {
let count = 0;
let set = new Set();
let words = str.split (' ');
// 1. replace 'let i = 1;' with 'let i = 0;'
// 2. replace the second condition 1 < words.length with i < words.length
for(let i = 1; i < words.length; i++){
// 3. replace 'str[i]' with 'words[i]'
set.add(words[i]);
count = set.size;
}
// 4. change 'uniqueWordCount' to 'count'
return count;
}
变量,而只需在函数末尾返回count
。这样一来,您就可以避免在set.size
的每次迭代中都更新count
。不需要 进行此更改,但是会使您的函数更好。这是它的外观:
for-loop
一个最终的优化将类似于@ellipsis所提到的-在拆分function uniqueWordCount(str) {
let set = new Set();
let words = str.split (' ');
for(let i = 1; i < words.length; i++){
set.add(words[i]);
}
return set.size;
}
字符串时立即创建一个Set
。像这样:
str
注意:如果您希望不区分大小写地计算唯一单词,则可以立即在function uniqueWordCount(str) {
// automatically populate your 'Set'
let set = new Set(str.split (' '));
// immediately return your set's size
return set.size;
}
函数中执行str.toLowerCase()
。