JavaScript问题,它返回意外值

JavaScript问题,它返回意外值,javascript,undefined,Javascript,Undefined,程序的目标是返回数组中某个位置的值。问题是它返回未定义的 var ONE = ["a1", "b1", "c1", "d1"]; var TWO = ["a2", "b2", "c2", "d2"]; // ONCLICK function main() { var p = prompt("Choose the ONE variable array or the TWO variable array"); var l = parseInt(prompt("Choose de pos

程序的目标是返回数组中某个位置的值。问题是它返回
未定义的

var ONE = ["a1", "b1", "c1", "d1"];

var TWO = ["a2", "b2", "c2", "d2"];

// ONCLICK 
function main() {
  var p = prompt("Choose the ONE variable array or the TWO variable array");
  var l = parseInt(prompt("Choose de position of the value of that array"));        
  console.log(second(l));
  second(p,l);                                          
}

function second(p,l) {
    if (p == "ONE")
        i = 0;
        while (i < 11){
            if (ONE[i] == l){
                return l;
            }
            i++;
        }

    if (p == "TWO")
        i = 0;
        while (i < 11){
            if (TWO[i] == l){
                return l;
            }
            i++;
        }

}

varone=[“a1”、“b1”、“c1”、“d1”];
变量二=[“a2”、“b2”、“c2”、“d2”];
//ONCLICK
函数main(){
var p=prompt(“选择单变量数组或双变量数组”);
var l=parseInt(提示(“选择该数组值的位置”);
控制台日志(第二个(l));
第二(p,l);
}
第二功能(p,l){
如果(p=“一”)
i=0;
而(i<11){
如果(一[i]==l){
返回l;
}
i++;
}
如果(p=“两个”)
i=0;
而(i<11){
如果(两个[i]==l){
返回l;
}
i++;
}
}

不清楚位置是否是数组的索引。如果是的话,我会是那样的

var ONE = ["a1", "b1", "c1", "d1"];
var TWO = ["a2", "b2", "c2", "d2"];

function second(p,l) {
    if (p === "ONE") {
        return ONE[l];
    }

    if (p === "TWO") {
        return TWO[l];
    }
}

second("ONE", 0); // output "a1"

也许是一个更优雅的解决方案

const数组={
一:[“a1”、“b1”、“c1”、“d1”],
二:[“a2”、“b2”、“c2”、“d2”]
}
//ONCLICK
函数main(){
var p=prompt(“选择单变量数组或双变量数组”);
var l=parseInt(提示(“选择该数组值的位置”);
控制台日志(第二个(p,l));
第二(p,l);
}
常数秒=(p,l)=>数组[p][l];
main()

使用这段代码,您调用的函数的第一个参数是“p”,没有“l”(“l”是未定义的),因此当它计算结果时,它将返回未定义的。

您第一次调用它时,只需将一个参数传递到
second()
。因此,将定义
p
,但不会定义
l
。。。。。你的控制台和它下面的线不匹配,。。。。。
console.log(second(l));