如何在第一个数字后添加空格(Javascript,.split)

时间:2017-12-02 14:16:14

标签: javascript

我有一个函数,它接受一串数字并返回最高和最低的数字。

功能:

function highAndLow(numbers){

      var split = numbers.split(' ').map(Number);
      var min = Math.min.apply(null, split).toString()
      var max = Math.max.apply(null, split).toString()
      var empty = ""
      var x = empty.concat(max, min).split("").join("");
      return x
    }

    highAndLow("1 9 3 4 -5"); // return "9 -5"

问题是它正在返回"9-5",我需要它返回"9 -5"

5 个答案:

答案 0 :(得分:1)

您不需要joinconcat。只需使用function highAndLow(numbers) { var split = numbers.split(' ').map(Number); var min = Math.min.apply(null, split).toString() var max = Math.max.apply(null, split).toString() var x = max.concat(" ", min); return x } console.log(highAndLow("1 9 3 4 -5"));添加空格。

function highAndLow(numbers) {
  var split = numbers.split(' ');
  return "" + Math.max(...split) + " " + Math.min(...split);
}

console.log(highAndLow("1 9 3 4 -5"));

或者使用现代功能的代码的更简洁版本是:

.map

无需Numbermin,因为max.apply会为您进行转化。我使用了扩展语法来传递数组,但如果您没有针对旧实现进行转换,则可以使用{{1}}。

答案 1 :(得分:0)

在中间插入一个空格,如

IEnumerable<IGrouping<string, FileItem>> number1
IEnumerable<IGrouping<string, FileItem>> number2

答案 2 :(得分:0)

使用字符串连接。 在es5:

function highAndLow(numbers){

  var split = numbers.split(' ').map(Number);
  var min = Math.min.apply(null, split).toString()
  var max = Math.max.apply(null, split).toString()
  return max + " " + min;
}

highAndLow("1 9 3 4 -5"); 


// It returns "9 -5"

答案 3 :(得分:0)

将代码拆分为单独的函数将有助于简化整个部分:

function getMinAndMax(numbers) {
    return {
        min: Math.min.apply(null, numbers),
        max: Math.max.apply(null, numbers),
    };
}

function getMinAndMaxViaString(input) {
    var numbers = input.split(' ').map(Number);
    var minAndMax = getMinAndMax(numbers);
    return minAndMax.min + ' ' + minAndMax.max;
}

这允许您独立地使用和修改每个功能,原始功能和委托功能。

对于问题的原始点,简单地将字符串与空格连接就足够了。

答案 4 :(得分:0)

这可以大大简化 - 例如这个代码将在IE5.5以后的任何版本的ANY JS浏览器上运行,所以你可以像1999年一样派对

function highAndLow(numberString) {
  var split = numberString.split(" ").sort(function(a, b){return a - b});
  return split.pop() + " " + split.shift();
}

console.log(highAndLow("1 9 3 4 -5")); // return "9 -5"