@Mosapi

Как перебрать столбец таблицы и изменить каждое первое уникальное значение?

Есть таблица вида:

00001 | 08.02.2021 | 0 | 2 | кт 18
00002 | 08.02.2021 | 0 | 1 | кт 18
00003 | 08.02.2021 | 0 | 6 | сс 23
00004 | 08.02.2021 | 0 | 4 | сс 23
00005 | 08.02.2021 | 0 | 2 | бб 35
00006 | 08.02.2021 | 0 | 1 | бб 35
00007 | 08.02.2021 | 0 | 1 | бб 35
00008 | 08.02.2021 | 0 | 1 | нн 02

Необходимо перебрать значения из последнего столбца, так чтобы сначала подсчитать кол-во повторений значений, а затем каждое первое из уникальных сделать ссылкой вида <a href=''.>Уникальное значение столбца</a>.

arr = [];
data = document.querySelectorAll('tr > td:last-child');
for (var i =0, dln=data.length; i< dln; i++){
per = data[i];
arr.push(per.innerText);
}
var result = arr.reduce(function(acc, el){acc[el] = (acc[el] || 0) + 1;return acc;}, []);
var uniqArr = arr.filter((val, i, ar) => ar.indexOf(val) === i);
//console.log(result);//массив повторений 
//console.log(result['кт 18']);//кол-во повторений
//console.log(uniqArr); //Уникальные значения

У меня получается вычислить кол-во повторений и выбрать уникальные значения. Но я не понимаю, как дальше все это использовать, чтобы добиться решения поставленной задачи?
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const table = document.querySelector('тут селектор вашей таблицы');

table.querySelectorAll('tbody td:last-child').forEach(
  (n, i, { [~-i]: { innerText: prev } = {} }) =>
    n.innerText !== prev && (n.innerHTML = `<a href="#">${n.innerText}</a>`)
);

// или

let prev = null;

for (const { rows } of table.tBodies) {
  for (const { lastElementChild: n } of rows) {
    const curr = n.textContent;
    if (curr !== prev) {
      n.innerHTML = '<a href="#">' + (prev = curr) + '</a>';
    }
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы