3 回答
TA贡献1858条经验 获得超8个赞
您正在连接数组属性名称,而不是它的值。这是因为for...in迭代对象的属性。我认为你想要做的是:
const arr = [1, 2, 3]
for (const i in arr) {
console.log(arr[i] + 1)
}
您始终可以在其中编写一些代码来验证输入的类型,但首先了解for...in循环很重要- 这里是一些有关for...in与数组一起使用的文档
您可以使用typeof在您的函数中进行简单的类型检查:
function doConcat(operand1, operand2) {
if (typeof operand1 !== typeof operand2) { //simple typeof check
console.log(`Cannot concat type: ${typeof operand1} with type: ${typeof operand2}`);
return;
}
return operand1 + operand2;
}
const arr1 = [1, 2, 3]; //Should work - adding 2 numbers
for (const i in arr1) {
console.log(doConcat(arr1[i], 1));
}
const arr2 = ['a', 'b', 'c']; //Should bomb - trying to concat number and string
for (const j in arr2) {
doConcat(arr2[j], 1);
}
添加回答
举报