Javascript 返回未定义的输出
我是javascript新手,正在努力理解return语句:Javascript 返回未定义的输出,javascript,Javascript,我是javascript新手,正在努力理解return语句: 函数解决方案(编号){ var newarray=[] 对于(变量i=0;i
函数解决方案(编号){
var newarray=[]
对于(变量i=0;i 控制台日志(解决方案(10))代码>作为输入传递的数字是10
您在for循环中以数字[i]的形式访问该数字,因此实际上您正在访问一个未定义的数字的第i-n个位置
换成
newarray.push(i);
只需将i
推送到newArray
<代码>我
这里已经有一个号码
此外,由于函数中的number
变量是原语
,而不是对象
或数组
,因此number[i]
为您提供了未定义的
,因为它没有与i
值对应的属性
另外,不需要最后一个else,因为它什么也不做
function solution(number){
var newarray = []
for ( var i = 0 ; i < number - 1 ; i++ ) {
if (i % 3 === 0) {
newarray.push(i);
} else if (i % 5 === 0) {
newarray.push(i);
}
}
return newarray
}
solution(10);//returns [0, 3, 5, 6]
函数解决方案(编号){
var newarray=[]
对于(变量i=0;i
功能解决方案(编号){
var newarray=[]
对于(变量i=0;i
编号[i]
?数字似乎是一个。。数字,而不是数组。也就是说,最后一个else是不必要的(而且在语法上是不正确的)。此外,前两个if可以压缩为if(i%3==0 | | i%5==0)
。只要它们做同样的事情(似乎是这样),就可以将它们浓缩。此外,对于数字-1,在您的案例中,您正在从0分析到8。不确定这是否是有意的。应该是。推(i)
我在过去的一天里一直在拆分字符串,这是多么明显的失误啊!谢谢你能解释一下为什么答案是-1吗?
function solution(number){
var newarray = []
for ( var i = 0 ; i < number - 1 ; i++ ) {
if (i % 3 === 0) {
newarray.push(i);
} else if (i % 5 === 0) {
newarray.push(i);
} else {
newarray
}
}
return newarray;
}
console.log(solution(10));