如何使用-而不是javascript添加每个数组的值
JavaScript的新特性。下面是我的代码,下面是算法应该完成的如何使用-而不是javascript添加每个数组的值,javascript,algorithm,Javascript,Algorithm,JavaScript的新特性。下面是我的代码,下面是算法应该完成的 function creditSum(arr) { var num_of_elements = parseInt(arr) array = arr.toString().split() array = array.map(Number) var sum_of_array = 0 for (var i = 0; i < num_of_elements; i++){ s
function creditSum(arr) {
var num_of_elements = parseInt(arr)
array = arr.toString().split()
array = array.map(Number)
var sum_of_array = 0
for (var i = 0; i < num_of_elements; i++){
sum_of_array += array[i]
}
return sum_of_array
}
console.log(creditSum(['4916-2600-1804-0530', '4779-252888-3972', '4252-278893-7978', '4556-4242-9283-2260']))
在上面的示例数组中,数字的总和分别为
49、81、81和64
。由于有两个函数具有相同的和,因此该函数应返回最后一个具有该和的函数,在本例中,'4252-278893-7978'
我认为这样做应该:
function creditSum(arr) {
const resultIndex = arr
.map(x => x
.split('')
.map(x => parseInt(x))
.filter(x => !isNaN(x))
.reduce((total, current) => total + current, 0)
)
.map((total, idx) => ({ idx, total }))
.sort((a, b) => b.total - a.total)
.reduce((result, current) =>
current.total >= result.total ? current : result,
{ total: 0 }
)
.idx;
return arr[resultIndex];
}
做这件事的原始方法。只是为了学习。我希望这能给你一个清晰的理解
函数积分和(arr){
var sum=[],current=0,last=0,w=0;
//从数组项中删除虚线
对于(变量i=0;i 如果(最后一个问题是你想找人帮你解决的面试问题吗?这里有很多错误。parseInt
不会给出元素的数量。这将是arr.length
。没有理由将数组转换为字符串,然后立即返回数组。映射到number
>不会做你认为会做的事。你也不会做任何事情来追踪最大的金额。你的家庭作业太棒了。你有什么问题吗?不,这不是为了面试,哈哈,只是一个我不太明白的挑战@Dekel@MikeC,谢谢。我知道我忘记了一些关键步骤,我的上一个函数中有一个max函数在发布之前,我做了一些尝试。只是发布了一些小故障。谢谢。代码确实工作正常。您解决这一问题的方法对我使用const函数非常有趣。我期待着将其分解,因为它与我以前看到的不同。谢谢。如果我有代表的话,我会给您一个类似的结果。
function creditSum(arr) {
const resultIndex = arr
.map(x => x
.split('')
.map(x => parseInt(x))
.filter(x => !isNaN(x))
.reduce((total, current) => total + current, 0)
)
.map((total, idx) => ({ idx, total }))
.sort((a, b) => b.total - a.total)
.reduce((result, current) =>
current.total >= result.total ? current : result,
{ total: 0 }
)
.idx;
return arr[resultIndex];
}