首页 > 解决方案 > 代码返回未定义而不是结果

问题描述

我想要某种形式从用户给出的某个输入中返回有多少大于 10 的数字。这需要与另一个运行另一个函数的页面在同一页面中运行。

第二个函数“mare”返回未定义,而第一个函数可以正常工作。是否应该有办法将输入存储在一个数组中,然后将函数传递给它?

我是新手,所以欢迎任何其他建议或提示和技巧。

$(document).ready(function() {
  var val = '';
  var contor = 0;

  function multiplu(j) {
    return j % 3 == 0 || j % 7 == 0;
  }

  function mare(input) {
    for (var i = 0; i < input.length; i++) {
      if (input[i] > 10) {
        return contor++;
      };
    }
  };

  $('#newItem').keyup(function(e) {
    if (e.which == 13) {
      e.preventDefault();
      $('#unu').append('<li>' + this.value + ': ' +
        multiplu(this.value) + "</li>");
    }
  });

  $('#newItem2').keyup(function(e) {
    if (e.which == 13) {
      e.preventDefault();
      $('#doi').append('<li> din sirul ' + this.value + 'sunt: ' +
        mare(this.value) + " mai mari ca 10 </li>");
    }
  });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="newItem">
<input type="text" id="newItem2">
<div id="prnt">
  <ul id="unu">
    <li>potato</li>
  </ul>
</div>
<div id="prnt">
  <ul id="doi">
    <li>potato</li>
  </ul>
</div>

标签: javascriptjquery

解决方案


正如我在评论中提到的,您应该定义分隔符(我将其定义为,)。然后在回车键上,你应该用这个分隔符分割你的输入字符串,然后遍历这个数组并检查哪些数字大于 10。这里有一个例子:

var val = '';

function multiplu(j) {
  return j % 3 == 0 || j % 7 == 0;
}

function mare(input) {
  var contor = 0;
  const splitted = input.split(',');

  splitted.forEach(function(value) {
    if (+value > 10) {
      ++contor;
    }
  });

  return contor;
};

$('#newItem').keyup(function(e) {
  if (e.which == 13) {
    e.preventDefault();
    $('#unu').append('<li>' + this.value + ': ' +
      multiplu(this.value) + "</li>");
  }
});

$('#newItem2').keyup(function(e) {
  if (e.which == 13) {
    e.preventDefault();
    $('#doi').append('<li> din sirul ' + this.value + ' sunt: ' +
      mare($(this).val()) + " mai mari ca 10 </li>");
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="newItem">
<input type="text" id="newItem2">
<div id="prnt">
  <ul id="unu">
    <li>potato</li>
  </ul>
</div>
<div id="prnt">
  <ul id="doi">
    <li>potato</li>
  </ul>
</div>


推荐阅读