Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从输入字段处理和输出数组中的数据_Javascript_Jquery - Fatal编程技术网

Javascript 从输入字段处理和输出数组中的数据

Javascript 从输入字段处理和输出数组中的数据,javascript,jquery,Javascript,Jquery,在单击事件中,我需要从几个输入字段中获取一些数字,找到这些数字的总数,分别对这些数字进行计算(包括按总数进行细分),然后依次输出新的数字,分别输出到其他地方 下面是一个截图,如果有帮助的话: 到目前为止,我已经通过将输入推入一个数组来实现它。但无论出于什么原因,我都不知道如何对数组中的数字进行数学运算,然后将它们输出到其他地方 任何伪代码或提示都会非常有用 我已经测试和删除了一百万次其他的东西,但这就是我所处的位置 HTML: $('.calc btn')。单击(函数(){ var minVal

在单击事件中,我需要从几个输入字段中获取一些数字,找到这些数字的总数,分别对这些数字进行计算(包括按总数进行细分),然后依次输出新的数字,分别输出到其他地方

下面是一个截图,如果有帮助的话:

到目前为止,我已经通过将输入推入一个数组来实现它。但无论出于什么原因,我都不知道如何对数组中的数字进行数学运算,然后将它们输出到其他地方

任何伪代码或提示都会非常有用

我已经测试和删除了一百万次其他的东西,但这就是我所处的位置

HTML:

$('.calc btn')。单击(函数(){
var minVal=无穷大;
/*创建数组、获取最小值和排序*/
var arr=$('input').map(函数(){
var val=1*$(this.val();
minVal=val

JS

$('.calc-btn').click(function(){

var inputs = [];
var total = 0;

    $('.input-box input').each(function(){

        inputs.push($(this).val());
        total = total + ($(this).val());

    });
    var minvalue = Math.min.apply(Math,inputs); // get minimum value in array
    var count_array = inputs.length; // number of elements in array

    //calculation part
    for (i = 0; i < inputs.length; ++i) {
           inputs[i] = ((inputs[i] / total) * 10); / minvalue;
           inputs[i] = inputs[i].toFixed(3);
    }


});
$('.calc btn')。单击(函数(){
var输入=[];
var合计=0;
$('.input box input')。每个(函数(){
push($(this.val());
总计=总计+($(this.val());
});
var minvalue=Math.min.apply(数学,输入);//获取数组中的最小值
var count_array=inputs.length;//数组中的元素数
//计算部分
对于(i=0;i

小提琴:

花了一段时间,但我找到了答案(在很多帮助下)。谢谢你,阿尼

HTML:

<div class="input-grid">
            <div class="input-row">
                <div class="input-box"><input type="text"><span class="input-unit">px</span></div>
                <i class="fa fa-chevron-right"></i>
                <span class="input-response">1.541</span>
            </div>
            <div class="input-row">
                <div class="input-box"><input type="text"><span class="input-unit">px</span></div>
                <i class="fa fa-chevron-right"></i>
                <span class="input-response">1.542</span>
            </div>
            <div class="input-row">
                <div class="input-box"><input type="text"><span class="input-unit">px</span></div>
                <i class="fa fa-chevron-right"></i>
                <span class="input-response">1.543</span>
            </div>
            <div class="input-row">
                <div class="input-box"><input type="text"><span class="input-unit">px</span></div>
                <i class="fa fa-chevron-right"></i>
                <span class="input-response">1.544</span>
            </div>
        </div>
        <div class="btn-wrap">
        <span class="calc-btn">calculate</span>
        <span class="reset-btn">reset</span>
        </div>

二甲苯
1.541
二甲苯
1.542
二甲苯
1.543
二甲苯
1.544
计算
重置
JS:

$('.calc btn')。单击(函数(){
var输入=[];
var合计=0;
$('.input box input')。每个(函数(){
var num=parseFloat($(this.val());
输入。推送(num);
总计=总计+(num);
});
var minValue=Math.min.apply(数学,输入);//获取数组中的最小值
var count_array=inputs.length;//数组中的元素数
//计算部分
对于(i=0;i

一个主要问题是,我需要使用parseFloat将值转换为整数,然后再将它们推送到数组中。另一个问题是如何将最终答案四舍五入到我用来固定()的小数位数;对于谢谢大家的帮助

到目前为止,您的代码在哪里?所有输入字段的计算都相同吗?可能您忘记了使用之前的数字calculate@DoorknobofSnow我添加了一些我所做的。@Ani是的,尽管如此。基本上,我会将每个输入除以(所有输入的)总数,再乘以10,再除以最低的输入。我对如何使用$.each有点模糊(与$('element').each()相反),但这对我来说确实很清楚。谢谢,我会尝试一下。谢谢!我会尝试一下,让你知道它是否有效:)这个解决方案对我来说是三个方案中最清楚的。因此,为了设置每个.input响应的值,您是否只需要$('.input-response').each(i){$(this.text(input[i])}?是的,没错。您的语法不正确,但逻辑是正确的。我正在运行它,我的控制台告诉我它没有固定()的方法;--知道为什么吗?哦…把它去掉。它是一个数值函数,但不是字符串值函数。
var numbers = [];

//take some numbers from several input fields, 
$('.myFields').each(function() {
  numbers.push($(this).val());
});

//find the total of those numbers, 
var total = 0;
$.each(numbers, function() {
  total += this;
});

//do some math on those numbers individually 
var processed = [];
$.each(numbers, function(i) {
  //(including diving each by the total), 
  processed[i] = this / total;
});

//and output new numbers in order, 
processed.sort();

$.each(numbers, function() {
  //individually, somewhere else.
  $('#somewhere').val(this);
});
$('.calc-btn').click(function(){
     var minVal=Infinity;
    /* create array, get minVal, and sort*/
    var arr= $('input').map(function(){
        var val=1*$(this).val();
        minVal = val < minVal ? val : minVal;
        return val
    }).get().sort();
    /* do math on array*/
    $.each(arr, function(i, val){
        arr[i]= val *10 /minVal;
    });

    /* do something with `arr`*/  
});
$('.calc-btn').click(function(){

var inputs = [];
var total = 0;

    $('.input-box input').each(function(){

        inputs.push($(this).val());
        total = total + ($(this).val());

    });
    var minvalue = Math.min.apply(Math,inputs); // get minimum value in array
    var count_array = inputs.length; // number of elements in array

    //calculation part
    for (i = 0; i < inputs.length; ++i) {
           inputs[i] = ((inputs[i] / total) * 10); / minvalue;
           inputs[i] = inputs[i].toFixed(3);
    }


});
<div class="input-grid">
            <div class="input-row">
                <div class="input-box"><input type="text"><span class="input-unit">px</span></div>
                <i class="fa fa-chevron-right"></i>
                <span class="input-response">1.541</span>
            </div>
            <div class="input-row">
                <div class="input-box"><input type="text"><span class="input-unit">px</span></div>
                <i class="fa fa-chevron-right"></i>
                <span class="input-response">1.542</span>
            </div>
            <div class="input-row">
                <div class="input-box"><input type="text"><span class="input-unit">px</span></div>
                <i class="fa fa-chevron-right"></i>
                <span class="input-response">1.543</span>
            </div>
            <div class="input-row">
                <div class="input-box"><input type="text"><span class="input-unit">px</span></div>
                <i class="fa fa-chevron-right"></i>
                <span class="input-response">1.544</span>
            </div>
        </div>
        <div class="btn-wrap">
        <span class="calc-btn">calculate</span>
        <span class="reset-btn">reset</span>
        </div>
$('.calc-btn').click(function(){

var inputs = [];
var total = 0;

    $('.input-box input').each(function(){
    var num = parseFloat($(this).val());
        inputs.push(num);
        total = total + (num);

    });
    var minValue = Math.min.apply(Math,inputs); // get minimum value in array
    var count_array = inputs.length; // number of elements in array

    //calculation part
    for (i = 0; i < inputs.length; i++) {
           inputs[i] = ((inputs[i] / total) * 1000)/ minValue;
           inputs[i] = inputs[i].toFixed(3);

    }

        $('span.input-response').each(function(i){
            $(this).text(inputs[i]);

         });

});