我试图简单地打印出我从csv文件导入的学生的全局数组列表。我已经进行了足够的故障排除,以了解数据正在导入并且可以正常读取。常见的答案似乎是您不需要为全局数组声明“ var”,但这对我也不起作用。
这是我的声明:
import java.util.concurrent.Semaphore;
public class Switch {
private Semaphore semaphore = new Semaphore(1);
public void enable() {
synchronized(this) {
semaphore.drainPermits(); // 0
semaphore.reducePermits(1); // -1 or 0
}
}
public void disable() {
semaphore.release(2); // 1 or 2
}
public void await() throws InterruptedException {
semaphore.acquire();
semaphore.release();
}
}
这是我初始化数组的地方:
//Student array list from csv import
studentList = [];
//window.studentList = [];
但是如果我使用get方法返回元素,则会收到“未定义”错误
function processData(csv){
let allLines = csv.split(/\r\n|\n/);
for(let i = 0; i < allLines.length; i++)
{
let row = allLines[i].split(",");
let col = [];
for(let j = 0; j < row.length; j++)
{
col.push(row[j]);
}
if(col == " ") break;
studentList.push(col);
}
//when I alert the array element by element the data is being read from within this function
for(let i =0; i < studentList.length; i++)
{
alert(studentList[i]);
}
}
编辑:尽管该解决方案是正确的,但是从另一个函数调用时,我仍然遇到相同的问题。例如,在下面的示例中,我需要为每个未定义的学生返回旅行出发地。
function getStudent(index) {
return studentList[index];
}
for(let i = 0; i < studentList.length; i++)
{
alert(getStudent[i]);
}
答案 0 :(得分:3)
问题似乎是您尝试从函数getStudent[i]
获取索引。尝试将该行更改为带有括号的alert(getStudent(i));
。
编辑 我用这段代码进行了测试,对我来说很好
studentList = [];
studentList.push('student1');
function getStudent(index) {
return studentList[index];
}
function getStudentsDeparture(i) {
var student = getStudent(i);
alert(student);
}
getStudentsDeparture(0);