我有以下代碼來顯示帶有用于自動完成的單詞的列表:var words = ['foo', 'bar', 'barz', 'ba'];var possibleWords = []; document.getElementsByTagName('div')[0].addEventListener('keyup', function(){ var textWords = this.innerText.split(' '); var lastWord = textWords[textWords.length-1]; for(var k = 0; k < words.length; k++){ for(n = 0; n < 20; n++){ if(lastWord.length == n+1 && words[k].charAt(n) == lastWord.charAt(n)){ possibleWords.push(words[k]); var counts = possibleWords.reduce((a, c) => { a[c] = (a[c] || 0) + 1; return a; }, {}); var maxCount = Math.max(...Object.values(counts)); var mostFrequent = Object.keys(counts).filter(k => counts[k] === maxCount); } } } console.log(mostFrequent); var list = this.getElementsByTagName('ul')[0]; if(mostFrequent == undefined) { list.removeAttribute('style'); } else { list.style.display = 'inline'; list.innerHTML = ''; list.innerHTML = '<li>'+mostFrequent.join('</li><li>')+'</li>'; }});div{width:300px;height:100px;outline:1px solid #ccc;position:relative;}ul{display:none;position:absolute;left:0;top:100px;}<div contenteditable="true"><ul></ul></div>當(dāng)我從var list = ...to注釋底部代碼list.innerHTML = '<li>'+...并嘗試鍵入b,然后是ba,然后是bar,然后是barz 時,我在控制臺中看到了正確的結(jié)果。但是如果我不注釋底部代碼,我會收到undefined一半的時間并且列表也有一半的時間是隱藏的。如何解決問題?
JS 數(shù)組中出現(xiàn)次數(shù)最多的元素的問題
ibeautiful
2021-06-21 09:15:11