jQuery数组乘法

jQuery array multiplication

本文关键字:数组 jQuery      更新时间:2023-09-26

我有两个不同的数组。我想要数组的和,用另一个数组乘以每个元素。例如:

function get_total() {
    var i = 0;
    var arr = [];
    var gift_val_len = $('.gift_value').length;
    $('.gift_value').each(function() {
        arr[i++]= parseFloat($(this).val());  // Or this.innerHTML, this.innerText
    });
    var j = 0;
    var arr1 = [];
    $('.gift_number').each(function() {
        arr1[j++]= parseFloat($(this).val());  // Or this.innerHTML, this.innerText
    });
}

现在有两个不同的数组,比如arr1=[15,20,25],arr2=[1,3,5],我想要的结果是((15*1)+(20*3)+(25*5))。我们如何才能做到这一点?

您可以使用内置的.map()方法,使用纯JavaScript(无jQuery),只需一行即可完成此操作:

var arr1=[15, 20, 25], arr2=[1, 3, 5];
var sum = 0;
var arr3 = arr1.map(function(x, index) {
  var curMult = x * arr2[index];
  sum += curMult;
  return curMult;
});
console.log(arr1);
console.log(arr2);
console.log(arr3);
console.log(sum);

这也将总结问题中提到的要素。

注意:数组的长度必须相同,否则代码将崩溃。

试试这个:

  • get_total函数中,使用arr1,arr2参数调度下面的function mulitply

  • 或者将其分配给一个变量,如var mult = multiply(arr1,arr2);

function multiply(arr1, arr2) {
  var res = [];
  for (var i = 0; i < arr1.length; i++) {
    res.push(arr1[i] * arr2[i]);
  };
  return res
};

要将数组缩减为单个值,可以使用array reduce

// Code goes here
var arr1=[15, 20, 25], arr2=[1, 3, 5];
var result = arr1.reduce(function(previousValue, currentValue, currentIndex) {
  var computedValue = currentValue * arr2[currentIndex];
  return previousValue + computedValue;
});
document.write(result);
console.log(result);

Array.protototype.requeste()可能是处理此问题的好方法。

function multiplyArrays (array1, array2) {
    return array1.reduce(function(prev, curr, i) {
      return prev + (curr * array2[i]);
    }, 0);
}