Javascript 循环不在阵列内部循环&;比较数组的元素
在这个函数中,我尝试循环到一个数组中,然后返回以下内容:如果一年由所有不同的数字组成,那么它是一个快乐的一年,应该存储在它所属的位置,在快乐数组中。如果不是,则应放入notHappy数组中 现在的问题是: 1) 如果我尝试的条件没有返回任何结果,Javascript 循环不在阵列内部循环&;比较数组的元素,javascript,Javascript,在这个函数中,我尝试循环到一个数组中,然后返回以下内容:如果一年由所有不同的数字组成,那么它是一个快乐的一年,应该存储在它所属的位置,在快乐数组中。如果不是,则应放入notHappy数组中 现在的问题是: 1) 如果我尝试的条件没有返回任何结果,[]。我很肯定这不是正确的做法 for (var i = 0; i <= t.length; i++) { if (i[0] != i[1] && i[0] != i[2] && i[0] != i[3])
[]
。我很肯定这不是正确的做法
for (var i = 0; i <= t.length; i++) {
if (i[0] != i[1] && i[0] != i[2] && i[0] != i[3]) {
o.happy.push(i++);
} else {
o.notHappy.push(i++)
}
}
您的代码有一些问题
1-for(var i=0;i在第一个代码示例中,您检查的是索引var,而不是年份数组。在第二个代码中,您将var i推送到数组,而不是年份(var t)。还要注意,您在for循环中增加了索引,这是非常糟糕的做法@David所评论的外观correct@DavidWinder谢谢你的评论,伙计。在第一个例子中,我检查的是指数var而不是年份数组,这到底是什么意思?类似于if(t[0]!=t[1]&&t[0]!=t[2]&&t[0]!=t[3])在第二段代码中,如果我在循环外增加索引,我首先如何“关闭”for循环?ThanksI的意思正是你所写的-t[0]!=t[1]…检查数组结构以查找NaN问题。我不是要在循环外增加索引-for循环的第一行中有I++的增量索引->您需要在push命令中从I中删除+。另外请注意,您检查了t[0]!=t[1]……不检查所有的数字是不同的-考虑案例2444解决:)谢谢大家!
function nextHappyYear(arr){
var o = {
happy: [],
notHappy: []
};
var t = arr.map(e => e.toString().split(""));
for (var i = 0; i <= t.length; i++) {
if (i%2 === 0) {
o.happy.push(i++);
} else { o.notHappy.push(i++)}
}
return console.log(o.happy)
}
nextHappyYear([1021, 1022, 1023, 1024]) // returns [0, 2, 4] instead of [1022, 1024]