Я бы хотел, чтобы пользователь вводил свои собственные плоды и имел там множество фруктов. я разобрался, но до этого я хотел бы сделать каждое слово первого символа заглавной буквой, а затем выплюнуть его на html с "с" на каждой записи. Я не уверен, что я на правильном пути. Любая помощь очень ценится! Спасибо
let fruits = ["banana", "orange", "apple", "kiwi"];
function addFruits () {
let fruitInput = prompt ("Please Enter More Fruits").toLowerCase().split(" ");
let fruitsAdded = fruits.push(fruitInput);
let fruitsPushed = fruitsAdded.map(
function(value){
return value.replace(value.charAt(0), value.charAt(0).toUpperCase());
});
fruits.sort();
document.getElementById("sortedFruits").innerHTML = fruits.join(" with ");
Я взял ваш код и работал
...
, для получения всех элементов как одиночных параметров,Array#push
, поскольку он возвращает новую длину массива, а не новый массив или заданный массив,fruits
Array#map
возьмите первый символ как строку верхнего регистра и resz строки с String#slice
.
function addFruits() {
let fruitInput = prompt("Please Enter More Fruits").toLowerCase().split(" ");
fruits.push(...fruitInput);
fruits.sort();
let upperCased = fruits.map(function(value) {
return value[0].toUpperCase() + value.slice(1);
});
document.getElementById("sortedFruits").innerHTML = upperCased.join(" with ");
}
let fruits = ["banana", "orange", "apple", "kiwi"];
addFruits();
<div id="sortedFruits"></div>
Для меня это помогает немного разобраться. Вы хотите принять ввод и обновить список, затем вы хотите отформатировать этот список для отображения. Я добавил список и триггер событий, чтобы упростить демонстрацию.
// 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>
function Firstupchar(letter) {
return letter[0].toUpperCase() + letter.substring(1).toLowerCase()
}
["one","two"].map(c => Firstupchar(c) ).join(" with ")