如何对两个多维数组的元素求和?

时间:2019-01-21 09:40:24

标签: javascript multidimensional-array google-sheets

我有2个多维数组:

[[230.0], [10.0], [12.0]]

[[50.0], [60.0], [89.0]]

并且正在尝试将每个元素加在一起并保持相同的数组结构。所以它应该像这样:

[[280.0], [70.0], [101.0]]

我尝试过:

 var sum = array1.map(function (num, index) {
  return num + array2[index];
   });

但是我明白了:

    [23050, 1060, 1289]

任何帮助将不胜感激。谢谢。

5 个答案:

答案 0 :(得分:0)

像这样

class SomeViewController:UIViewController {
var button:UIButton = UIButton()
func setupButton()
{
    button = UIButton(frame: CGRect(x: 140, y: 140, width: 90, height: 40))
    button.addTarget(self, action: #selector(print(-:)) , for: .touchUpOutside)
    navigationController?.navigationBar.addSubview(button)
    button.setTitle("Convert", for: .normal)
    button.backgroundColor = .yellow
    view.addSubview(button)


}

@objc func print(_sender: UIButton)
{
    print("Stackoverflow")
}

override func viewDidLoad() 
{
    super.viewDidLoad()
    view.addSubview(CollectionView)
    CollectionView.frame = view.frame
    setupButton()
 }
}

您必须制作var sum = array1.map(function (num, index) { return parseInt(num) + parseInt(array2[index]); }); parseInt,以便它可以与它们转换parseFloat

答案 1 :(得分:0)

STEPS

  1. 遍历数组中的每个数字(数组长度)。
  2. 对两个数组中具有相同索引的对象求和。
  3. 将总和推入另一个数组中以获得结果。如果输入为字符串,请使用parseFloat。
  4. (可选)使用.toFixed(1)将小数位设置为1位。

const arr1 = [[230.0], [10.0], [12.0]]
const arr2 = [[50.0], [60.0], [89.0]]

let sum = []
for (let i = 0; i < arr1.length; i++){ // Assume arr1 and arr2 have the same size
  let eachSum = parseFloat(arr1[i]) + parseFloat(arr2[i])
  sum.push([eachSum.toFixed(1)])
}

console.log(sum)

答案 2 :(得分:0)

您试图在map函数内添加两个数组结构。

一个解决方案,以便您可以看到发生了什么...

array1.map((a,i) => a[0] + array2[i][0])

从控制台截屏...

enter image description here

答案 3 :(得分:0)

您使用的代码仅采用单个级别,而不考虑嵌套数组。通过仅带一个元素但不带内部数组索引的na数组并使用像+这样的运算符,调用原型函数toString并连接一个字符串(单个元素为字符串,不带{返回并添加{1}}作为分隔符。结果是字符串,而不是用,进行数字运算的结果。


您可以采用递归方法,检查该值是否为数组,然后使用嵌套元素再次调用该函数。

+

答案 4 :(得分:-1)

在内部地图中,您应该:

return parseInt(num) + parseInt(array2[index]);

之所以发生这种情况,是因为当您尝试添加它们时,这些变量是数组而不是整数。因此,它们被评估为字符串并连接起来。