如果与给定的数字匹配,则将数组中的数字相乘

Posted

技术标签:

【中文标题】如果与给定的数字匹配,则将数组中的数字相乘【英文标题】:multiply the number in the array if it matches the given one 【发布时间】:2021-08-04 15:32:39 【问题描述】:

我有一个这样的数组,如果是3,我需要乘以一个数字,但最后reduce消除了所有等于3的数字,并将其余的相乘。我该如何解决这个问题?

 let arr = [2, 4, 3, 1, 4, 3, 1, 3, 10, 4, 2, 13]

 let aaa = arr.reduce([])  $1 == 3 ? $0 : $0 + [$1 * 5] 

//[10, 20, 5, 20, 5, 50, 20, 10, 65]
//[2,4,15,1,4,15,1,15,10,4,2,13] need this

【问题讨论】:

你应该使用地图。 【参考方案1】:

你应该使用 map 而不是 reduce

let arr = [2, 4, 3, 1, 4, 3, 1, 3, 10, 4, 2, 13]

let result = arr.map  $0 == 3 ? 15 : $0 
// [2, 4, 15, 1, 4, 15, 1, 15, 10, 4, 2, 13

或者如果它应该适用于 3 的任何倍数

let result = arr.map  $0.isMultiple(of: 3) ? $0 * 5 : $0 

【讨论】:

实际上它说“乘以一个数字如果它是 3”所以我认为它只是 3 这意味着你实际上可以直接返回 15... 这是真的,@JoakimDanielson,只是习惯了这么多问题是多个(的:)。我已经更新了我的答案。

以上是关于如果与给定的数字匹配,则将数组中的数字相乘的主要内容,如果未能解决你的问题,请参考以下文章

假设某个元素与 R 中的 CSV 文件的文件名相同,则将数据框中的某个元素相乘

Leetcode练习(Python):数组类:第31题:实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列

如何将一个字符串中的 2 个数字与 PHP 中字符串之外的第 3 个数字相乘?

数组中的两个不同数字,它们的和等于给定值

如何将两个数组与每个元素相乘作为数字c ++

C - 如果长度不同,则将 2 个字符串中的数字加在一起