javascript - 更新数字数组,使它们彼此之后
问题描述
我有一组数字,用户可以从页面中添加和删除。我需要排列数组中的数字,以便在添加/删除数字时它们始终彼此相邻
const numbers = [1,2,3,4,5,6,7,8]
5 已从我如何修复的数组中删除,因此这些数字彼此之后,例如下面
数字必须是[1,2,3,4,5,6,7]
或者如果 2 被删除
numbers need to be [1,2,3,4,5,6,7]
有没有办法用 lodash 或 es6 解决这个问题?
解决方案
这就是我将如何做到的。
删除数字后,循环遍历数组并将数字设置为数组的索引。
使用.forEach()
const array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
addEventListener('click', _ => {
const removed = array.splice(Math.floor(Math.random() * array.length), 1);
array.forEach((_, i) => array[i] = i);
console.log(`Removed: `, removed[0]);
console.log(`New Array`, array);
});
使用.map()
let array = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
addEventListener('click', _ => {
const removed = array.splice(Math.floor(Math.random() * array.length), 1);
array = array.map((_, i) => i);
console.log(`Removed: `, removed[0]);
console.log(`New Array`, array);
});
推荐阅读
- vps - 如何在 VPS 上安全地部署 Fullstack 网站
- linux - 如何调用包含文件路径而不是文件路径末尾的文件的变量的字符串内容?重击/Linux
- javascript - 如何使用 instagram 基本显示 API 或 Graph API
- azure-active-directory - 如果用户存在于广告组中,如何让我的外观跳过?
- c# - httprequestmessage.createresponse() 在 System.net.http 中不存在
- android - 在 Flutter 中按下后如何更改 IconButton 的图标
- python - 在 pdm 文件中搜索关键字并提取该关键字
- angular - 当函数返回新值时,如何更新 Angular 中的子组件?
- rust - 处理 rust 中泛型和非泛型类型的枚举返回
- python - 你如何用 Python 正确地从 NVIDIA 网站上抓取数据?