javascript - 使用“排序”方法后如何计算元素的前一个索引?
问题描述
我正在编写一个简单的银行模拟应用程序。
我的问题是我需要找出元素的先前索引。我有一张地图:
const movsDesc = new Map([[6, 'Bank']]);
这是原始数组:
const movements: [200, -200, 340, -300, -20, 50, 400, -460];
这是我正在使用的比较功能:
const movsSorted = movements.slice().sort((a, b) => a - b);
然后我forEach
在数组上使用,并在每次迭代中为事务创建一个 DOM 元素。它看起来像这样:
movs.forEach(function(mov, i) {
const type = mov[0] > 0 ? 'deposit' : 'withdrawal';
const description = currentAccount.movsDesc.get(i) || 'Unknown';
const html = `
<div class="movements__row">
<div class="movements__type movements__type--${type}">${i + 1} ${type}</div>
<div class='movements__sender'>${type === 'deposit' ? 'from' : 'to'}: ${description}</div>
<div class="movements__value">${mov[0]}€</div>
</div>
`;
containerMovements.insertAdjacentHTML('afterbegin', html);
});
当数组具有其原始顺序时,它可以正常工作,因此没有任何更改。映射中的每个键都指向数组中的指定索引。当然,当数组被排序时,元素会改变它们的位置,因此它们会得到错误的描述。这就是为什么我需要跟踪每个元素的位置,可以这么说。
感谢你的帮助!
解决方案
推荐阅读
- python-3.x - 如何从 Javascript 变量中检索值
- nightmare - 无法获得有效的选择器来实现 I.click()
- javascript - 如何从定义 setInterval() 的另一个函数调用 clearInterval()(函数在同一个类中)
- scala - 使用 Map 替换 Spark 中的列值
- javascript -
- javascript - 无法在 Bootstrap 中实现 W3Schools 幻灯片?
- c++ - 模板参数依赖 [[nodiscard]]
- python - 如何使用 slack api 代表另一个用户发送命令
- excel - Excel formula for aggregation and filtering
- reactjs - 使用 material-ui 在 Jest 中进行快照测试的问题