【问题标题】:results array between two values - javascript两个值之间的结果数组 - javascript
【发布时间】:2015-11-18 14:05:10
【问题描述】:

我想知道是否有一种方法可以通过另一个数组获取具有最小值和最大值的数组,或者像这样:

var numbers = ['10','15','20','25','30','35','40','45','50'];  

var getnumbers = function(min,max){
 //return a result that is push to another array, in this case "results"
};
getnumbers(10,30);
console.log(results);

输出应该给我类似 10 - 15 - 20 - 25 - 30

【问题讨论】:

  • 你可以定义一个像numbers这样的全局数组并push进去,也可以在getnumbers中创建一个临时数组并返回。
  • 好的,明白了,但我不确定如何像输出一样获取数字数组值。
  • 我相信@Nina,答案是完美的,但另一种方法是循环遍历 numbers 数组并将其推入数组并返回。

标签: javascript arrays numbers between


【解决方案1】:

一种略有不同的方法,带有用于过滤的自定义回调函数。

function filterNumbers(min, max) {
    return function (a) { return a >= min && a <= max; };
}

var numbers = ['10', '15', '20', '25', '30', '35', '40', '45', '50'],
    result = numbers.filter(filterNumbers(10, 30));

document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');

【讨论】:

    【解决方案2】:

    你可以这样做:numbers.filter(function (value) { return value &gt;= 10 &amp;&amp; value &lt;= 30 });

    如果您真的希望输出为N1 - N2 - N3 ... - NN,只需执行numbers.filter(function (value) { return value &gt;= 10 &amp;&amp; value &lt;= 30 }).join(' - ');

    【讨论】:

    • 您需要将 v 转换为数字
    • 会自动完成;数组由字符串组成。奇怪的 JavaScript 东西,你知道的……
    【解决方案3】:

    试试这个

    var numbers = ['10','15','20','25','30','35','40','45','50'];  
    var output = "";
    var getnumbers = function(min,max){
      for (var i = 0; i < numbers.length; i++){
        if(numbers[i] >= min && numbers[i] <= max){
          output += numbers[i] + "-";
        }
      }
    };
    getnumbers(10,30);
    console.log(output);
    

    【讨论】:

    • 你的也很有效
    【解决方案4】:

    JavaScript 具有解决此问题的内置函数。

    let numbers = ['10','15','20','25','30','35','40','45','50'];
    // Get all elements between '10' and '30'
    let result = numbers.splice(numbers.indexOf('10'),numbers.indexOf('30') + 1);
    console.log(result);
    // If you want the answer to literally be '10-15-20-25-30'
    let resultString = "";
    for(const i in result){
        resultString.concat(`${result[i]}-`)
    }
    console.log(resultString);
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      • 2019-12-23
      • 1970-01-01
      • 2012-01-12
      相关资源
      最近更新 更多