Для меня это помогает немного разбить вещи.Вы хотите принять данные и обновить список, а затем отформатировать этот список для отображения.Я добавил список и триггер событий, чтобы упростить демонстрацию.
// set up your list of fruit and the handles for your event/render
let fruits = ["banana", "orange", "apple", "kiwi"];
const wrapper = document.querySelector('#sortedFruits');
const button = document.querySelector('#add_button');
const render = () => {
// build (and sort) a list from the fruits array
const list = fruits
.sort()
// uppercase the first character and ensure the rest are lower
.map(str => str.slice(0,1).toUpperCase() + str.slice(1).toLowerCase())
// format item for render
.map(fruit => `<li>${fruit}</li>`)
.join('');
// replace list with new list
wrapper.innerHTML = list;
}
const addFruits = () => {
// take user input
const input = prompt('Please enter more fruit')
// build array of fruit to add
const newFruit = input
.toLowerCase()
.split(' ');
// update fruit list
fruits = [ ...fruits, ...newFruit ];
// show updated list
render();
}
// initial list
render();
// add event handler to trigger fruit addition
button.addEventListener('click', addFruits);
<section>
<input type="button" name="add_fruit" value="Add More Fruit!" id="add_button" />
<ul id="sortedFruits"></ul>
</section>