【问题标题】:The arguments object - JavaScript [closed]参数对象 - JavaScript [关闭]
【发布时间】:2021-12-07 12:30:19
【问题描述】:

我已经运行了以下代码。但是我应该从数据数组中获取最小数字为-1,但我得到的是“min”变量的初始化值,即 0

let data = [2,3,4,2,6,7,8,9,-1,7,6,4,3]
let  min = 0

function findMin() {

  for (let n of arguments) {
      if(n < min) {
          min = n
      }
  }
  return min
}

const smallNumber = findMin(data)
console.log(smallNumber)

谁能帮忙解释一下?

【问题讨论】:

  • 你正在迭代arguments,这是一个单个元素的类数组对象。该元素是您的整个数组。您正在将一个数字与您的数组进行比较。为什么不正常做,让findMin 接受一个参数并对其进行迭代?
  • 您是否尝试记录argumentsn

标签: javascript arguments


【解决方案1】:

arguments 是一个类似数组的对象,它为调用函数的每个参数都有条目,第一个条目的索引为 0。

试试这个sn-p

let data = [2, 3, 4, 2, 6, 7, 8, 9, -1, 7, 6, 4, 3];
let min = 0;

function findMin() {
  for (let n of arguments[0]) {
    if (n < min) {
        min = n;
    }
  }
  return min;
}

const smallNumber = findMin(data);
console.log(smallNumber);

【讨论】:

    【解决方案2】:

    您只是忘记在函数中声明参数! ?

    let data = [2,3,4,2,6,7,8,9,-1,7,6,4,3]
    let  min = 0
    
    function findMin(arguments) {
    
      for (let n of arguments) {
          if(n < min) {
              min = n
          }
      }
      return min
    }
    
    const smallNumber = findMin(data)
    console.log(smallNumber)
    

    【讨论】:

    • 问题是关于the arguments object,它允许访问传递给函数的所有参数,即使没有声明为参数。您刚刚声明了一个名为“arguments”的普通参数
    • 哦好的抱歉抱歉,我没听懂:(
    猜你喜欢
    • 2012-07-25
    • 2017-12-05
    • 2022-06-15
    • 2013-12-16
    • 2013-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-13
    相关资源
    最近更新 更多