【问题标题】:How can I make my array into a formatted string? [duplicate]如何将我的数组变成格式化的字符串? [复制]
【发布时间】:2019-09-28 04:44:51
【问题描述】:

我正在尝试将我的数组格式化为格式化字符串,我该怎么做? 我得到的指示是

任务 6 - 查找列表中的所有奇数。

允许将任意数量的 Number 参数传递给函数。 如果传递给函数的值不是数字,则忽略它 并继续处理其余部分。如果列表为空(没有通过 给函数,或者都需要忽略,返回null)。

返回一个列表中所有奇数的格式化字符串,例如:

“1、3、5”

<script>
var odd = [];

const oddNumbers = (...numbers) => {
  var oddNum
  var formatString;
  var i;

  if (numbers.length > 0) {
    for (i = 0; i < numbers.length; i++) {
      if (isNaN(numbers[i]) === false && (numbers[i] % 2 !== 0)) {
        odd.push(numbers[i]);
        console.log(odd);
      }
    }
  } else {
    return null;
  }
  return odd;
};

oddNumbers(1, 2, 34, 54, 55, 34, 32, 11, 19, 17, 54, 66, 13);

alert(odd);
</script>

【问题讨论】:

  • numbers.filter(n =&gt; n % 2 !== 0).join(", ")
  • @epascarello 这也将包括非数字,并且不检查长度 0
  • 我会使用const odds = []; for (let i = 0; i &lt; numbers.length; i++) { const num = numbers[i]; if (typeof num === 'number' &amp;&amp; num % 2 === 1) { odds.push(num); } } if (odds.length === 0) { return null; } return odds.join(', ');
  • 不是很难添加非数字检查!isNaN(n) 并且不是一个完整的答案,因此是评论;)

标签: javascript arrays


【解决方案1】:

只需将join你的数组转换成字符串:

else{
     return null;
}
return odd.join(', ');

【讨论】:

    【解决方案2】:

    const oddNumbers = (...numbers) => {
      var odd = [];
      var oddNum
      var formatString;
      var i;
    
      if (Array.isArray(numbers)) {
        for (i in numbers) {
          if (isNaN(numbers[i]) === false && (numbers[i] % 2 !== 0)) {
            odd.push(numbers[i]);
          }
        }
      } else {
        return [];
      }
      return odd;
    };
    
    var result = oddNumbers(1, 2, 34, 54, 55, 34, 32, 11, 19, 17, 54, 66, 13);
    
    console.log(result.join(', '))

    【讨论】:

      猜你喜欢
      • 2019-07-18
      • 2013-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多