Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回未定义的输出_Javascript - Fatal编程技术网

Javascript 返回未定义的输出

Javascript 返回未定义的输出,javascript,Javascript,我是javascript新手,正在努力理解return语句: 函数解决方案(编号){ var newarray=[] 对于(变量i=0;i

我是javascript新手,正在努力理解return语句:

函数解决方案(编号){
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));