#javascript #html #arrays #indexing
Вопрос:
Я новичок, так что это будет глупый вопрос. Я получил задание создать глобальный массив, в который мне нужно будет импортировать объекты, поскольку они добавляются в поле ввода в html-документе. Затем оттуда мне нужно обновить текущий список в html-документе, но мне нужно добавить средний элемент массива в список, а затем очистить массив. Мой вопрос в том, как мне найти средний индекс и добавить его в массив? Я попробовал следующий код
const ulList = document.querySelector("ul");
const liElement = document.createElement("li");
liElement.innerHTML = `${globalArray[globalArray.length / 2 - 1].key} ${globalArray[globalArray.length / 2 - 1].manufacturer} ${globalArray[globalArray.length / 2 - 1].model}`
ulList.appendChild(liElement);
globalArray.splice(globalArray[globalArray.length / 2 - 1], 1);
Комментарии:
1. Вы можете попробовать получить длину массива и разделить ее на две, но это не гарантирует наличие значения в этом индексе. Видеть
new Array(4)[2] // undefined
2. Ваша логика
globalArray.length/2-1
в правильном направлении, но что произойдет, если globalArray.length-нечетное число (например, 5?)3. Вы всегда можете округлить вниз, если длина нечетная?
4. Так что же было не так с кодом в вашем вопросе?
5. Если вы не ожидаете
HTML
, не используйтеinnerHTML
, вы можете использоватьinnerText
илиtextContent
. По соображениям безопасности.
Ответ №1:
function getArrayMidKey(myArray) {
let midKeyIndex = Math.floor(myArray.length / 2)
return midKeyIndex;
}
let snacks = array("Cake", "Soda", "Apples", "Doritos");
midSnack = snacks[getArrayMidKey(snacks));
// midSnack --> "Soda"
Это дает вам средний ключ любого заданного массива..
Если массив содержит 5 элементов, он даст вам номер элемента 2, если он содержит 6 или 7 элементов — он даст вам номер элемента 3 и так далее.
Ответ №2:
Math.floor(globalArray.length / 2)
globalArray[Math.floor(globalArray.length / 2)]
Попробуй это