Посмотрим я могу объяснять я хорошо.
Цель состоит в том, чтобы укорачивать код, который уже функционирует. Первоначальная информация - три arrays об объекте
let listDemo = [];
let listRep = [];
let listIndp = [];
Каждым array я считаю функцию следующей, которая делает меня append в таблице, и потом у меня есть 4-ая функция, которая делает на общем количестве три arrays.
function votedPartyDemo(array) {
var total = 0;
array.forEach((element) => {
total = total + element.votes_with_party_pct;
});
var newData = document.createElement("td");
newData.className = "text-center";
newData.innerHTML = (total / 105).toFixed(2) + "%";
rowDem.append(newData);
}
votedPartyDemo(listDemo);
То, что я пробую сделать, но не получаю состоит в том, чтобы делать функцию с loop, который делал бы все. Проблема прибывает во время делания append в таблице, потому что я должен делать каждый append в одной tr
что уже существует раньше.
Единственное, что пришло в голову мне, состоит в том, чтобы делать другой array, который хранит три переменные, которые делают мне getElementById
. Таким образом у него было бы следующее:
let listDemo = [];
let listRep = [];
let listIndp = [];
let rowDem = document.getElementById("attGlanceDem");
let rowRep = document.getElementById("attGlanceRep");
let rowIndp = document.getElementById("attGlanceIndp");
let globalStoreA = [rowDem, rowRep, rowIndp];
let globalStoreB = [listDemo, listRep, listIndp];
Как я перемещаю его в функцию два аргумента для того, чтобы один for
перешел с одного сайта на другой два arrays и сформируйтесь append
согласно положению i
в loop? Я немного начинающий в Js, так что, если я проникаю в очень большое баклажанное поле, вы можете говорить это мне xD
В конце концов я достиг результата с довольным estoy
function votedParty(innArray1, innArray2) {
var totalParty = 0;
var total = 0;
for (let i = 0, len = innArray2.length; i < len; i++) {
let total = 0;
for (let j = 0, llar = innArray2[i].length; j < llar; j++)
total = total + innArray2[i][j].votes_with_party_pct;
var newData = document.createElement("td");
newData.className = "text-center";
newData.innerHTML = (total / 105).toFixed(2) + "%";
innArray1[i].append(newData);
totalParty = totalParty + total;
}
newData = document.createElement("td");
newData.className = "text-center";
newData.innerHTML = (totalParty / 105).toFixed(2) + "%";
rowTotal.append(newData);
}
votedParty(globalStoreA, globalStoreB);
Не costarГ - во многий перемещать это forEach, но на данный момент становлюсь понятным лучше с полным for