【问题标题】:How to filter array values greater than x如何过滤大于 x 的数组值
【发布时间】:2016-02-19 18:07:50
【问题描述】:

我一直在互联网上四处寻找,但我找不到任何关于如何解决此问题的帖子,尽管我确信这是一个非常简单的解决方法。

基本上我有一个包含数字值的数组,我想过滤掉任何大于 10 的数字并将它们添加到另一个数组中。这是我目前所拥有的,但我得到的是第一个数组中的所有数字。

<!DOCTYPE html>
<html>
<body>
  <p id="demo"></p>
  <button type="button" onclick="alert(output)">Click Me!</button>
  <script>
    var input = new Array(9,3,4.3,24,54,8,19,23,46,87,3.14);
    var output = new Array();
    var length = 1;
    for (var i = 0; i < input.length; i += length) {
      output.push(input.slice(i, i + length).join(" "));
    }
  </script>
</body>
</html>

【问题讨论】:

标签: javascript html arrays


【解决方案1】:

尝试使用Array.prototype.sort()Array.prototype.filter()

var input = new Array(9,3,4.3,24,54,8,19,23,46,87,3.14);
var output = new Array();

input = input.sort(function(a, b) {
  return a - b
}).filter(function(val, key) {
  return val < 10 ? val : output.push(val) && null
})

console.log(input, output);

【讨论】:

    【解决方案2】:
    function predicate(x) { return x > 10 }
    var output = input.filter(predicate);
    input = input.filter(function(x) { return !predicate(x) })
    

    使用 ES6 箭头函数看起来更干净:

    var predicate = (x) => x > 10;
    var output = input.filter(predicate);
    input = input.filter(x => !predicate(x));
    

    【讨论】:

      【解决方案3】:
          <!DOCTYPE html>
          <html>
          <body>
      
          <p id="demo"></p>
      
          <button type="button" onclick="alert(output)">Click Me!</button>
          <script>
          var input = new Array(9,3,4.3,24,54,8,19,23,46,87,3.14);
          var output = new Array();
          for (var i = 0; i < input.length; i ++) {
          if(input[i] > 10)
          {
          output.push(input[i]);
          }
          }
      
      
          </script>
      
      
          </body>
          </html>
      

      【讨论】:

        【解决方案4】:

        我相信你正在寻找这样的东西。

        var input = new Array(9,3,4.3,24,54,8,19,23,46,87,3.14);
        
        var newArray = new Array();
        input.forEach(function(number){
            if(number > 10)
            {
                newArray.push(number);
            }
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-01-12
          • 1970-01-01
          • 2023-03-10
          • 2020-01-23
          • 2022-09-27
          • 1970-01-01
          • 2013-10-08
          • 2021-11-06
          相关资源
          最近更新 更多