题解 | #购物面板#
购物面板
https://www.nowcoder.com/practice/1448469386f746f5941db2712372f373
基于arr的写法
let trArr = Array.from(document.querySelectorAll("tr")).filter(
(_, i, arr) => i < arr.length - 1
);
let itemArr = trArr.map((e) => ({
price: parseInt(e.querySelectorAll("td")[1].innerText), // 价格
count: 0, // 总数
}));
const _dataReLoad = () => {
total.innerHTML = itemArr.reduce((a, e) => a + e.count * e.price, 0); // 求和
};
trArr.forEach((e, i) => {
let count = e.querySelector("span");
let buttons = e.querySelectorAll("button");
let itemObj = itemArr[i];
buttons[0].onclick = function () {
if (itemObj.count <= 0) {
itemObj.count = 0;
return;
}
itemObj.count--;
count.innerText = itemObj.count;
_dataReLoad();
};
buttons[1].onclick = function () {
itemObj.count++;
count.innerHTML = itemObj.count;
_dataReLoad();
};
});

查看9道真题和解析