跳至主要內容

2703. 返回传递的参数的长度


2703. 返回传递的参数的长度

🟢   🔗 力扣open in new window LeetCodeopen in new window

题目

Write a function argumentsLength that returns the count of arguments passed to it.

Example 1:

Input: args = [5]

Output: 1

Explanation:

argumentsLength(5); // 1

One value was passed to the function so it should return 1.

Example 2:

Input: args = [{}, null, "3"]

Output: 3

Explanation:

argumentsLength({}, null, "3"); // 3

Three values were passed to the function so it should return 3.

Constraints:

  • args is a valid JSON array
  • 0 <= args.length <= 100

题目大意

请你编写一个函数 argumentsLength,返回传递给该函数的参数数量。

示例 1:

输入: args = [5]

输出: 1

解释:

argumentsLength(5); // 1

只传递了一个值给函数,因此它应返回 1。

示例 2:

输入: args = [{}, null, "3"]

输出: 3

解释:

argumentsLength({}, null, "3"); // 3

传递了三个值给函数,因此它应返回 3。

提示:

  • args 是一个有效的 JSON 数组
  • 0 <= args.length <= 100

解题思路

题目要求非常简单,主要考察对函数参数的处理。在 JavaScript 中,所有函数内部都有一个特殊的对象 arguments,它是一个类数组对象,包含所有传递给该函数的参数。

可以使用 arguments.length 来直接获取传递的参数数量。

  1. ...args:这是剩余参数语法,它允许我们将函数的所有参数收集到一个数组中。
  2. args.length:返回收集到的参数数组的长度,即传递给函数的参数数量。

复杂度分析

  • 时间复杂度O(1),因为只是在计算参数数组的长度。
  • 空间复杂度O(1),仅存储了函数的参数长度,不需要额外空间。

代码

/**
 * @param {...(null|boolean|number|string|Array|Object)} args
 * @return {number}
 */
var argumentsLength = function (...args) {
	return args.length;
};

/**
 * argumentsLength(1, 2, 3); // 3
 */