For循环条件
您的 for 循环条件导致错误。 syntax of a for loop 声明第二项(“循环条件”)应计算为布尔值(true/false),告诉您何时继续迭代以及何时停止。
现在您将“i.nums.length”作为循环条件,这不是有效代码(因为存储在变量i 中的数字没有属性nums)。
相反,您应该将i < nums.length 作为循环条件,这将是true,直到i 不再是nums 数组中的有效索引,此时它是false 和循环停下来。
连接输出
数字没有“concat”方法,所以不能使用nums[i].concat()。要在javascript中将数字与字符串连接,可以使用+,它将数字转换为字符串并将其连接到字符串。如果你想要一个空间,你也可以连接它。
检查长度
如果nouns.length小于nums.length,Javascript会为nouns的缺失项生成undefined,但不会抛出错误。为了确保两个数组在迭代它们之前的长度相同,如果长度不完全匹配,您可以使用console.assert(nouns.length === nums.length, message) 打印错误消息。这不是严格要求的(因为您的示例代码中的长度 do 匹配),但可以使代码对数组声明中的错误更加健壮。
最终代码
最终代码(包含所有修改)如下所示:
var nums = [1, 5, 88, 2, 5, 42, 57, 101];
var nouns = ["ducks", "telephone booth", "the enterprise", "robots", "amazon", "eraser", "zafod", "a"];
console.assert(nums.length === nouns.length, `Array sizes ${nums.length} and ${nouns.length} don't match`);
// output of the first function should be: "1 ducks"
for (let i = 0; i < nums.length; i++) {
console.log(nums[i] + " " + nouns[i]);
}