yScale.domain(d3.extent(data, (d) => d.amount))
- так вы повторно задаёте интервал значений, беря в качестве границ минимум (был 0, остался 0) и максимум (вместо ранее установленных 100000 стало 50000, поэтому и "линия достигает самого верха графика") своих данных. что ещё запрещено делать в content script?
const uniqueWithSum = (arr, idKey, sumKey) =>
Object.values(arr.reduce((acc, n) => {
const id = n[idKey];
acc[id] = acc[id] || Object.assign(new n.constructor, n, { [sumKey]: 0 });
acc[id][sumKey] += n[sumKey];
return acc;
}, {}));
// ваш случай
const result = uniqueWithSum(arr, 'id', 'duration');
// элементам не обязательно быть объектами, это могут быть и массивы
uniqueWithSum([
[ 'A', 1 ],
[ 'B', 5 ],
[ 'A', 2 ],
[ 'A', 3 ],
], 0, 1) // [ [ 'A', 6 ], [ 'B', 5 ] ]
<script src="//cdnjs.cloudflare.com/ajax/libs/validate.js/0.12.0/validate.min.js"></script>
[...document.querySelectorAll('.table__checkbox input')].some(input => input.checked)