计算两个输入值

时间:2017-04-09 03:26:01

标签: javascript arrays

正如标题所示,我想创建一个函数,计算我的数组中用户输入的两个值之间的值的数量。例如,如果数组是[1, 4, 6, 7, 8, 6]并且用户输入5作为第一个值而7作为第二个值,那么他们会收到一条警告,表示

  

"值的总数= 3"。

5 个答案:

答案 0 :(得分:1)

您可以使用Array#filter的第二个属性(为您选择的回调设置this绑定)为此问题创建一个非常干净的解决方案:

var array = [1, 4, 6, 7, 8, 6]

function inRange (x) {
  return this[0] <= x && x <= this[1]
}

var result = array.filter(inRange, [5, 7]).length

console.log('Total number of values:', result)

答案 1 :(得分:0)

您只需要一个简单的for循环。

var total = 0;
var num1 = 5;
var num2 = 7;
var array = [1,4,6,7,8,6];
for(var a = 0; a < array.length; a++) {
    if(array[a] >= num1 && array[a] <= num2) {
         total++;
    }
}
alert("Total numbers of values = " + total);

这将遍历数组,检测范围内的nums,计算一个值,并在警报中输出。

答案 2 :(得分:0)

您可以将Array.prototype.filter()RegExp.prototype.test()RegExp构造函数一起使用from-to,其中from5to7,获得结果数组的.length

var from = 5;
var to = 7;
var len = arr.filter(RegExp.prototype.test.bind(new RegExp(`[${from}-${to}]`))).length;

您也可以使用.toString().match()

var arr = [1,4,6,7,8,6];
var from = 5;
var to = 7;
var res = arr.toString().match(new RegExp(`[${from}-${to}]`, "g"));
var len = res.length;

console.log(res.length);

答案 3 :(得分:0)

您可以执行以下操作;

&#13;
&#13;
var arr = [1,4,6,7,8,6],
  input = [5,7],
 result = arr.reduce((r,n) => n >= input[0] && n <= input[1] ? ++r : r, 0);
console.log(result);
&#13;
&#13;
&#13;

答案 4 :(得分:0)

var array = [1, 4, 6, 7, 8, 6];

function countNumber(arr,a,b){
    let count = 0;
    for (const number of arr){
        if (number >= a && number <= b){
            count ++;
        }
    }
    return count;
}

console.log(countNumber(array, 5, 7));