返回全局数组元素

时间:2018-11-23 14:27:03

标签: javascript arrays global

我试图简单地打印出我从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]);
}

1 个答案:

答案 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);