В вашем коде return
немедленно завершает функцию до завершения любой из итераций.Другая проблема состоит в том, что .value
работает только для элементов, подобных вводу, - для извлечения текста из div
, доступа к его свойству textContent
.
Как насчет использования Array.from
и его встроенного map
Функция ping, которая не требует внешней мутации?
const graphData = Array.from(
{ length: 8 },
(_, i) => Number(document.getElementById('E1_INV_Funds' + i).textContent)
);
console.log(graphData);
<div id="E1_INV_Funds0">1</div>
<div id="E1_INV_Funds1">2</div>
<div id="E1_INV_Funds2">3</div>
<div id="E1_INV_Funds3">4</div>
<div id="E1_INV_Funds4">5</div>
<div id="E1_INV_Funds5">6</div>
<div id="E1_INV_Funds6">7</div>
<div id="E1_INV_Funds7">8</div>
Array.from({ length }, mapFn)
- это просто функциональный способ создания нового массива длины length
.Передача объекта со свойством length
в Array.from
создает массив undefined
s, а второй аргумент такой же, как Array.prototype.map
, применяемый к результирующему массиву перед его возвратом.При .map
первый аргумент - это значение массива (здесь бесполезно), а второй аргумент - это индекс элемента, по которому выполняется итерация, и это то, что нам нужно._
является просто индикатором того, что параметр там не будет использоваться.
См. MDN