【发布时间】:2021-01-27 15:01:12
【问题描述】:
停留在 JavaScript 中的这个小部分。我目前有一个程序,当按下按钮时,它会获取一个输入文件并逐行读取并确定哪些行是回文,然后将它们输出到控制台。我的目标是获取这些回文并在它们上运行下一个函数(称为频率)并将函数的结果输出到控制台。但是,我不知道该怎么做。
这是我的代码:
window.addEventListener('load', function() {
document.getElementById("myBtn").addEventListener("click", function() {
var reader = new FileReader();
reader.addEventListener('load', function() {
const sentences = this.result.split(/\r?\n/);
const palindromes = sentences.filter((line) => {
return palindrome(line);
});
console.log('all sentences:', sentences);
console.log('only palindromes:', palindromes);
});
reader.readAsText(document.querySelector('input').files[0]);
});
}, true);
function palindrome(str) {
if (str === '')
return false;
var re = /[\W_]/g;
var lowRegStr = str.toLowerCase().replace(re, '');
var reverseStr = lowRegStr.split('').reverse().join('');
return reverseStr === lowRegStr;
}
function frequency(str) {
//some code
}
<label for="upload">Upload file to find palindromes:</label>
<br />
<input type="file" name="upload" id="upload">
<button id="myBtn">Go!</button>
有什么建议吗?谢谢!
编辑:这是我输入的内容
mom
Racecar!
another line
【问题讨论】:
-
在与
console.log()相同的位置致电frequency()以获取句子和回文列表。您可以在您选择的循环中执行此操作。 -
回文是一个数组——你需要一个循环。
标签: javascript arrays function palindrome