我有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]
任何帮助将不胜感激。谢谢。
答案 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
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)
答案 3 :(得分:0)
您使用的代码仅采用单个级别,而不考虑嵌套数组。通过仅带一个元素但不带内部数组索引的na数组并使用像+
这样的运算符,调用原型函数toString
并连接一个字符串(单个元素为字符串,不带{返回并添加{1}}作为分隔符。结果是字符串,而不是用,
进行数字运算的结果。
您可以采用递归方法,检查该值是否为数组,然后使用嵌套元素再次调用该函数。
+
答案 4 :(得分:-1)
在内部地图中,您应该:
return parseInt(num) + parseInt(array2[index]);
之所以发生这种情况,是因为当您尝试添加它们时,这些变量是数组而不是整数。因此,它们被评估为字符串并连接起来。