正在获取下一个可用编号,跳过数组中的项目
Getting next available number, skipping items in an array
我得到了一个包含不可用插槽的数组。例如[4,6,7]如果我开始向上计数(索引++),一旦它达到3,下一个可用的插槽将是5。如果索引=5,则下一个可用插槽为8。
我找不到一个像样的方法来做那件事。我如何开发一个函数,返回下一个可用的插槽(给定向上或向下的计数方向)
var notAvailable = [4,6,7];
function nextSlot(current, direction) { ... }
nextSlot(2,'up');
如有任何帮助,我们将不胜感激。
您可以这样做。。。
var notAvailable = [4,6,7];
function nextSlot(current, direction) {
var inc = 1;
if( direction == "down" ){
inc = -1;
}
var next = current + inc;
for(var i = 0; i < notAvailable.length; i++){
if( notAvailable[i] == next ){
return nextSlot(next , direction );
}
}
return next ;
}
nextSlot(2,'up');
假设current
为当前插槽:
var notAvailable = [4,6,7];
function nextSlot(current, direction) {
var inc = direction === 'down' ? -1 : 1;
var next = current;
while(notAvailable.indexOf(next += inc) > -1);
return next;
}
nextSlot(2, 'up'); // 3
nextSlot(3, 'up'); // 5
nextSlot(5, 'up'); // 8
nextSlot(5, 'down'); // 3
nextSlot(3); // 5 assumes no direction as 'up'
它使用了ES5中数组的indexOf方法。
相关文章:
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 按不同项目对对象数组进行排序
- 使用JavaScript或jQuery检查单选按钮选择是否与数组中的项目匹配
- JS:从整个数组中每次得到5个项目,并得到平均值
- 使用圆中的数组更改背景颜色项目
- 编辑CSV数组中的项目-快速CSV node.js
- 我可以限制我添加到数组中的项目数量吗
- 使用javascript/jquery从现有数组中创建一个新数组,该数组保存项目存在的次数
- 什么's JavaScript数组中项目的作用域
- 将项目放入数组中
- 使用 id 和 Javascript 从数组中删除项目
- (角度.js)如何通过过滤器计算数组中有多少项目
- 如何通过迭代对象数组来删除某些项目
- Lodash 从与值数组不匹配的数组中获取项目
- 发布要形成的 n 个项目的数组
- 查找数组中项目包含子字符串的索引
- 我怎么能只保留符合特定条件的数组项目
- 关于将数组项目处理为分区的问题
- Php回显数组项目逐个点击(唯一)
- 连续删除数组项目(游戏障碍)