Javascript - 在foreach函数中切换数组名称

时间:2015-12-26 23:00:06

标签: javascript arrays function

尽量让这个变得简单易懂......

我有一个JS函数,它实际上选择了一个人选择的数组(列表),然后将其传递给另一个函数然后打印出该数组。问题是我无法弄清楚如何使用我通过的数组名称看看:

阵列:

var allLists =['list1', 'list2'];
var list1 = ['orange', 'pear', 'apple'];
var list2 = ['car', 'plane', 'bike'];

遍历列表的函数:

function printAllLists() {
    lists.forEach(function(entry) {
        count++;
        document.write("<h2> List Number " + count + "</h2>");
        printList(entry);

    });
}

将每个列表内容输出到表

的功能
function printList(listname) {
    document.write("<table>");
    document.write("List Name Is: " + listname);

    listname.forEach(function(entry) {  //HERE IS THE PROBLEM   
        document.write("<tr><td>");
        document.write(entry);
        document.write("</td></tr>");   
    });
    document.write("</table>");
}

我遇到的问题是下面的行字面上使用“listname”而不是作为列表名称传递的内容应该是“list1”或“list 2”

listname.forEach(function(entry) {

所以它只是失败了这个错误。我怎样才能让它交换数组的名称。对不起,如果它不是很清楚我想说的是什么我不确定如何确切地说这个(这可能是谷歌没有帮助的原因。)

Uncaught TypeError: listname.forEach is not a function

的jsfiddle 链接到JSFiddle - https://jsfiddle.net/38x5nw62/ 感谢

1 个答案:

答案 0 :(得分:0)

这样做:

var list1 = ['car', 'plane', 'bike'];
var list2 = ['car', 'plane', 'bike'];
var allLists = [list1, list2];

此处的工作代码:https://jsfiddle.net/38x5nw62/1/

使用var allLists = ['list1', 'list2'];的地方只包含字符串'list1''list2',而不是字符串中熟悉的变量/数组。