You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript初学者求助:如何实现接收数组的简单函数

解决JavaScript中数组输入函数的TypeError问题

首先咱们来揪出问题的根源:你传入的{3,4,5,6}并不是JavaScript里的数组,而是普通对象字面量(用大括号{}定义的键值对集合)。对象默认没有length属性,所以当你尝试访问credits.length时,自然会抛出TypeError。

正确的用法步骤:

  1. 用方括号定义数组:如果要传入数字列表,必须使用方括号[]来创建数组,比如[3,4,5,6],这才是JS里标准的数组格式。
  2. 你的函数逻辑本身是对的:只要传入正确的数组,你的函数就能正常返回元素个数。修正后的调用示例:
function semGPA(credits) {
  var c = credits.length;
  return c;
}

// 正确调用:传入数组
console.log(semGPA([3,4,5,6])); // 输出 4

额外的小提示(避免后续踩坑):

  • 如果担心传入的不是数组,可以在函数里加个校验,确保输入符合要求:
function semGPA(credits) {
  if (!Array.isArray(credits)) {
    throw new Error("请传入一个数组作为参数");
  }
  var c = credits.length;
  return c;
}
  • 如果你不小心拿到了类数组对象(比如函数的arguments、DOM元素集合),可以用Array.from()把它转换成真正的数组,再访问length:
function semGPA(credits) {
  var arr = Array.from(credits);
  return arr.length;
}

内容的提问来源于stack exchange,提问作者Micah Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:30:56