我无法理解如何调用特定的数组值:
我在代码中注释了这些问题。请看一下,让我知道为什么数组在函数中产生一个结果,同时在它之外产生不同的结果。要运行代码,请使用repl.it等网站
var passengers = [ ["Thomas", "Meeks"],
["Gregg", "Pollack"],
["Christine", "Wong"],
["Dan", "McGaw"] ];
var results = passengers.map(function (array) {
// The following prints out the first names--the entire first column. Why?
console.log(array[0]);
});
console.log(); // Just empty space
// Why is the following only printin the first row of passengers (which it should), but the array[0] printed out the entirety of the first column?
console.log(passengers[0]);
答案 0 :(得分:2)
你有一个数组数组,所以当你在这里调用map
时:
var results = passengers.map(function (array) {
// The following prints out the first names--the entire first column. Why?
console.log(array[0]);
});
它循环通过外部数组。传递给函数的参数是您要循环的数组元素,在本例中是内部数组。所以console.log(array[0])
正在打印内部数组的第一个元素。
换句话说,这段代码大致相当于:
console.log(passengers[0][0]);
console.log(passengers[1][0]);
console.log(passengers[2][0]);
console.log(passengers[3][0]);
请注意,在此示例中,我只遍历外部数组(第一个索引)。内部数组索引保持为零。
但稍后你有
console.log(passengers[0]);
它只是从外部数组打印第一个元素,这是整个第一个内部数组。
进一步阅读