Javascript 在js数组中查找顺序值

Javascript 在js数组中查找顺序值,javascript,Javascript,这个代码怎么了 我正在尝试一个简单的纸牌游戏,看看一个人是否有一个直杆 逻辑是检查数组中的下一个值是否为当前值+1 让arr=[ [d',13], [f',12], [z',11], [d',10], [d',9] ]; arr=arr.sort((a,b)=>a[1]-b[1]); 常数isSeq=arr=>{ for(设i=0;i{ for(设i=0;ia[1]-b[1]); 常数isSeq=arr=>{ 让isStraight=true let current=arr[0][1] for

这个代码怎么了

我正在尝试一个简单的纸牌游戏,看看一个人是否有一个直杆

逻辑是检查数组中的下一个值是否为当前值+1

让arr=[
[d',13],
[f',12],
[z',11],
[d',10],
[d',9]
];
arr=arr.sort((a,b)=>a[1]-b[1]);
常数isSeq=arr=>{
for(设i=0;iisSeq(arr)在第一次检查后,您可以通过各种方式快速返回

if (arr[i][1]+1 !== arr[i+1][1]) {
    return false;
} else {
    return true;
}
您应在完成所有检查后返回:

for (let i = 0; i < arr.length - 1; i++) {
    console.log(arr[i][1]+1, arr[i+1][1])
    if (arr[i][1]+1 !== arr[i+1][1]) {
        return false;
    }
  }
  return true;
for(设i=0;i
您需要删除else部分,因为这将退出函数,即使在第一次迭代中为true

让arr=[['d',13],'f',12],'z',11],'d',10],'d',9];
arr=arr.sort((a,b)=>a[1]-b[1]);
常数isSeq=arr=>{
for(设i=0;i控制台日志(isSeq(arr))
您也可以使用
数组#every()执行此操作。

让arr=[
[d',13],
[f',12],
[z',11],
[d',10],
[d',9]
];
arr=arr.sort((a,b)=>a[1]-b[1]);
函数isSeq(数据){
返回data.every((num,i)=>(i==data.length-1)| |(num[1]==(data[i+1][1]-1));
}

控制台日志(isSeq(arr))
相反
如果else
使用
return
,您可以使用
break

将第一个值作为当前值,并迭代输入的其余部分。将每个条目与当前条目进行比较。如果序列中断,则从循环中断。在移动到下一个条目之前,请将其设置为新的当前条目

让arr=[
[d',13],
[f',12],
[z',11],
[d',10],
[d',9]
];
arr=arr.sort((a,b)=>a[1]-b[1]);
常数isSeq=arr=>{
让isStraight=true
let current=arr[0][1]
for(设i=1;iconsole.log(isSeq(arr))
为什么要按顺序对阵列进行排序以便在其上运行logicc