【问题标题】:Concatenating Numbers in javascript [duplicate]在javascript中连接数字[重复]
【发布时间】:2021-02-05 11:20:31
【问题描述】:

我的目标是将数字变成字符串。

如果我的实际 = concatenateNumbers(7); 预期 = “7” 我的代码是:

function concatenateNumbers(num1) {
    return num1.toString();
}

但是,如果我的实际值还有 2 或 3 个值,则实际 = concatenateNumbers(7, 9) 或实际 = (7, 9 ,1) => 预期为 = "79" 或 "791"

谁能给我一个想法或提示我应该如何处理这个问题?

【问题讨论】:

  • return 只能传递一个值。你想要什么样的返回值类型?数组?一个东西?还有什么?
  • function concatenateNumbers(...nums) { return nums.join(''); }
  • @ChrisG concatenateNumbers = "".concat.bind("")
  • js 会自动为你字符串化,你不需要显式转换,你的参数的其他数字在哪里?
  • 我对 javscript 还是很陌生,我还没有处理过数组或对象。

标签: javascript


【解决方案1】:

使用The arguments object 转换为一个真正的数组,并使用Array.prototype.join() 和一个空字符串:

function concatenateNumbers() {
  return [...arguments].join("");
}

var numbersArrays = [
  [],
  [7],
  [7, 9],
  [7, 9, 1]
];

numbersArrays.forEach(numbersArray=>{
  console.log(numbersArray.join(", ") + " => " + concatenateNumbers(...numbersArray));
});

console.log("1, 2, 3 => "+concatenateNumbers(1, 2, 3));

numbersArrays 只是使用 SO 的代码 sn-p 以及 "["+numbersArray.join(", ")+"]" 将每个 numbersArrays 的 Array 显示为 Array 以及对实际函数 concatenateNumbers 的实际调用的便捷方式。

编辑使函数的参数实际上是一个使用Spread syntax (...) 的数字列表,正如VLAZ 所指出的那样。

它实际上会连接任何东西,尽其所能......

【讨论】:

  • 您在调用函数时传递的是数组,而不仅仅是数字。日志应该是numbersArray.join(", ") + " => "+concatenateNumbers(...numbersArray))
  • @VLAZ,你是对的,我已经对你的评论投了赞成票,并调整了答案。
  • 一般来说,我个人尝试展示我的示例something like this。是的,代码是重复的,但我认为更清楚地看到发生了什么。
猜你喜欢
  • 2022-09-23
  • 2019-06-06
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 2011-01-12
  • 2019-01-16
  • 1970-01-01
  • 2014-06-05
相关资源
最近更新 更多