首页 > 解决方案 > 我需要指导来解决我的 JavaScript 问题

问题描述

创建一个名为“bigOrSmall”的函数,该函数接受一个参数“arr”,该参数将是一个数字数组。在 bigOrSmall 函数内部,创建一个名为“answers”的新数组。然后,遍历传入的 arr 参数,并检查数组中的数字是否大于 100。如果是,将“big”作为字符串推送到 answers 数组。如果数字小于或等于 100,则将“small”作为字符串推送到 answers 数组。返回函数内部的答案数组。

这就是我到目前为止所拥有的。

function bigOrSmall(answers) {
    for(let i = 0; i > 100; i++) {
        return answers('big')
        if(let i = 0; i <= 100; i++) {
            return answers('small')
        }
        answers(arr[i])
    }
    return answers,
}

显然我知道我做的不对,因为它没有通过测试,但我想知道我是否走在正确的轨道上并获得一些提示以使我进入正确的方向。

标签: javascriptarraysfunctionfor-loop

解决方案


在循环内部,您使用returnwhich 在第一次迭代中终止函数。

你可以重构你的代码如下:

function bigOrSmall(arr) {
  const answers = [];
  for(let i = 0; i < arr.length; i++) {
    if (arr[i] <= 100) {
      answers.push('small');
    } else {
      answers.push('big');
    }
  }
  return answers
}

console.log(bigOrSmall([0, 105, 100]))

或者你可以用Array.map()它来制作单线

const mapped = [0,105,100].map(item => item <= 100 ? 'small' : 'big')

console.log(mapped)


推荐阅读