我是javascript的新手,我正在努力理解return语句:
P* -------------------------------------------------------------
P* getLastChar - Get last non-blank char in parameter
P* -------------------------------------------------------------
P getLastChar b export
D getLastChar pi 1a
D* Input-parameter
D charseq 100a value
D* Local fields
D lastChar s 1a inz(' ')
D chrseq s 1a dim(100)
C
C* -------------------------------------------------------------
C* Error handling
C* -------------------------------------------------------------
C charseq ifeq *blanks
C return x'00'
C endif
C
C* -------------------------------------------------------------
C* Reverse input char sequence
C* -------------------------------------------------------------
C 1 do 101 x
C eval chrseq(101-x) = %subst(charseq:x:1)
C enddo
C* Now: How do I get chrseq(1) to chrseq(100) into charseq back?
C* -------------------------------------------------------------
C* Get last non-blank char
C* -------------------------------------------------------------
C eval charseq = %triml(charseq)
C eval lastChar = %subst(charseq:1:1)
C
C
C return lastChar
C
P getLastChar e

此解决方案返回一个包含值的数组,但它们都是未定义的。为什么会这样?我错过了什么基本概念,任何人都可以帮助我吗?
答案 0 :(得分:0)
作为输入传递的数字是10.
您可以将for循环中的数字作为数字[i]访问,因此您实际上正在访问undefined
数字的第i个位置。
将其更改为
newarray.push(i);
答案 1 :(得分:0)
您只需将i
推送到newArray
即可。 i
这里已经是Number
。
此外,由于函数内的number
变量是primitive
而不是object
或array
,因此number[i]
会为您提供undefined
因为它没有与i
的值相对应的属性。
此外,最后一个不需要,因为它什么都不做。
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]
答案 2 :(得分:0)
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));