我不太了解编程,现在我正在学习Javascript几天,所以我的问题可能很容易,提前道歉:
问题是:
创建一个名为'arrayCounter'的函数,该函数接受一个数组参数。该函数必须返回传入的数组的长度,如果传入'string','number'或'undefined'值,则返回0。
我做到了这一点:
function arrayCounter(i) {
var no = ['string', 'undefined', 'number'];
for (j = 0; j < no.length; j += 1) {
if(typeof(i) === no[j]) {return 0}
}
return i.length
为什么我的代码错了?
答案 0 :(得分:0)
你应该使用JavaScript的Array.isArray(arg)
函数,它告诉你一些提供的参数arg
是否是一个数组。使用此函数,我们将检查传递给函数i
的参数arrayCounter
是否为数组。如果是,我们返回length
。否则,我们会返回0
,如下所示:
function arrayCounter(i) {
// if the argument is an array, return its length
if (Array.isArray(i)) {
return i.length;
}
// otherwise, return zero
else {
return 0;
}
};
如果您希望您的代码可读性稍差但更简洁,您可以使用JavaScript的条件三元运算符,如上所述(如@adeneo提到的那样):
function arrayCounter(i) {
return (Array.isArray(i) ? i.length : 0);
};