使用动态添加的输入对数组中的每个数字进行平方

Squaring each number in an array with dynamically added inputs

我正在尝试计算用户输入到具有动态添加输入的表单中的一组数据的标准偏差。到目前为止,我已经能够计算数组中元素的总和,但我不知道如何对数组的每个元素求平方。我已经搜索过这个论坛,但从唯一适用的结果 (Square each number in an array in javascript) 中尝试建议似乎没有用。这是我的代码片段:

$(".calcSD").click(function() {
       $("input[type=text]").each(function() {
        arr.push($(this).val().trim() || 0);
        sum += parseInt($(this).val().trim() || 0);
        });

其中 .calcSD 是用户单击以执行计算的按钮。此外,数组的长度由 var number = arr.sort().filter(Boolean).length; 给出,因为脚本旨在过滤掉任何留空的输入。

此外,如果有所不同,输入将通过以下方式动态添加到数组:

$('.multi-field-wrapper').each(function() {
  var $wrapper = $('.multi-fields', this);
  $(".add-field", $(this)).unbind('click').click(function(e) {
    $('.multi-field:first-child', $wrapper).clone(true).appendTo($wrapper).find('input').val('').focus();
  });

所以我问:如何确定结果数组中每个元素的平方?

我可能没有正确理解您的意思,但是您不能在将值推入数组时将其乘以自身吗?

$(".calcSD").click(function() {
       $("input[type=text]").each(function() {
        arr.push(($(this).val()*$(this).val()).trim() || 0);
        sum += parseInt($(this).val().trim() || 0);
});

最终我希望能够对数组中元素的平方求和(因为它是计算 SD 的一部分)所以我这样做了并且成功了:

var sumXsq = 0;    
for(var i = 0 ; i <= number ; i++) {
    sumXsq += parseInt(arr[i]*arr[i]);
} 

但不如 Rayon 的回答好。

The pow() method returns the value of x to the power of y (x^y)

|| in parseInt 将使用基数作为 0 如果它 returns falsey

$(".calcSD").click(function() {
  var sum = 0;
  var arr=[];
  $("input[type=text]").each(function() {
    var squared = Math.pow(parseInt(this.value)||0, 2);
    arr.push(squared);
    sum += squared;
  });
  alert(sum);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<input type="text">
<input type="text">
<button class="calcSD">Calculate</button>