gpt4 book ai didi

javascript - 根据数组元素的总和对数组中的元素进行排序

转载 作者:行者123 更新时间:2023-12-04 00:34:29 24 4
gpt4 key购买 nike

我一直在尝试解决我遇到的在线 Javascript 挑战。所以,问题是这样的
我有一个数组

let strng="103 123 4444 99 2000"

所以我必须根据单个元素的总和按升序排列它们
103=1+0+3=4
123=1+2+3=6
4444=4+4+4+4=16
99=9+9=18
2000=2+0+0+0=2

所以现在根据结果strng数组中的元素需要按升序排序
最后的答案应该是
["2000" "103" "123" "4444" "99"]

所以我尝试了,我达到了一个我完全不知道下一步是什么的地步
下面是我的代码
let s=[]

let f=strng.split(' ')
console.log(f)
f.map(item=>{
let d=item.split('').reduce((a,b)=>Number(a)+Number(b),0)
s.push(d)

s.sort((a,b)=>a-b)


})
console.log(s) // gives me [2, 4, 6, 16, 18]

所以我对它们进行了排序。将单个元素的数字相加,但现在我应该如何或如何排列 strng 数组中的元素?
我需要通过按升序排序来返回 strng 数组。所以作为初学者我想问的下一步是什么,我完全被困在这里。

最佳答案

您的一般方法很好,但不要使用 map , 使用 sort .毕竟这就是它的目的。 :-) 我也可能会给自己一个 sumDigits功能:

function sumDigits(str) {
return str.split("").reduce((s, v) => s + Number(v), 0);
}

然后 sort大致是( arraysplit(" ") 在原始字符串上的结果):
array.sort((a, b) => sumDigits(a) - sumDigits(b));

然后大概你需要通过 .join(" ") 将结果加入到单个字符串中。 .

请注意,我没有故意提供完整的联合解决方案,因为我的感觉是您需要帮助解决这个问题,而不是让解决方案交给您。 :-)

关于javascript - 根据数组元素的总和对数组中的元素进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59705034/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com