JavaScript (jQuery ではない) のみを使用して、アイテム (この場合は文字列) を正しいアルファベット順に挿入する最も効率的な方法は何だろうか。アイテムを挿入した直後にリストを並べ替えるだけで十分だと思いましたが、うまくいきません。テキストフィールドに入力された値を介して挿入される値を取得しています。
新しい項目を挿入する前のリストは次のようになります。
- アルバトロス
- ファンテイル
- ケア
- キウイ
- たかへ
- トゥイ
このリストに「Bellbird」を追加すると、リストは次のようになります。
- アルバトロス
- ベルバード
- ファンテイル
- ケア
- キウイ
- たかへ
- トゥイ
目的の結果を達成しようとするために使用しているコードは次のとおりです。
HTML:
<ul id="birds">
<li>Albatross</li>
<li>Fantail</li>
<li>Kea</li>
<li>Kiwi</li>
<li>Takahe</li>
<li>Tui</li>
</ul>
<p><label for="addNewBirdField">Add new bird: </label>
<input type="text" id="addNewBirdField" /></p>
<p><button id ="addItem">Add new bird</button></p>
JavaScript:
function addNewBird()
{
var birdList = document.getElementById("birds"); //get birds unordered list
var newBirdItem = document.createElement("li"); // create new li element
var bird = document.getElementById("addNewBirdField").value // get data from form field
var birdValue = document.createTextNode(bird); // create new textNode with value from previous step
newBirdItem.appendChild(birdValue); // append textNode from previous step to li element (newBirdItem)
birdList.appendChild(newBirdItem); // append li element to bird list
birdList.sort();
}
var addItem = document.getElementById("addItem");
addItem.onclick = addNewBird;
配列の並べ替えに関するこのリンクを見てきました(プログラミングに関する私の知識では、各リスト要素が配列内にあると想定しています)。辞書順ソートとは何かを理解しています。これは今週初めに学びました。
誰かがこれについて私を助けることができれば、とても感謝しています.