更新数字数组,使它们彼此相继
Update array of numbers so they are after each other
我有一组数字,用户可以在页面上添加和删除这些数字。我需要排列数组中的数字,以便当数字为 added/removed
时它们总是一个接一个
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);
});
从数组中删除数字后,您可以使用 for 循环对其进行迭代,并将该索引号分配给数组中的该位置。
const numbers = [1,2,3,4,5,6,7,8]
numbers.splice(1, 1) //2 was removed
for(var i = 0; i < numbers.length; i++){
numbers[i] = i+1;
}
我有一组数字,用户可以在页面上添加和删除这些数字。我需要排列数组中的数字,以便当数字为 added/removed
时它们总是一个接一个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);
});
从数组中删除数字后,您可以使用 for 循环对其进行迭代,并将该索引号分配给数组中的该位置。
const numbers = [1,2,3,4,5,6,7,8]
numbers.splice(1, 1) //2 was removed
for(var i = 0; i < numbers.length; i++){
numbers[i] = i+1;
}