如何组合两个相关函数(Javascript)

如何组合两个相关函数(Javascript),javascript,Javascript,标题:得分最高的单词 信息: 我很难让这两个代码片段只在一个函数中工作。目前,第一个代码片段只是将句子拆分为单个单词和字母数组。第二个代码片段是我希望第一个代码片段对每个句子单词字母数组执行的操作 问题:如何让这两个函数协同工作,以便它们返回索引值总和最高的单词 返回:这些函数组合起来将返回句子中每个单词的和,以确定哪个单词的和值最高 示例: 如果句子是“aa bb”,那么 “aa”{ 返回w.split(“”) }) 返回ltrArr } log(high(“这是一个测试句子”)/--返回单词

标题:得分最高的单词

信息: 我很难让这两个代码片段只在一个函数中工作。目前,第一个代码片段只是将句子拆分为单个单词和字母数组。第二个代码片段是我希望第一个代码片段对每个句子单词字母数组执行的操作

问题:如何让这两个函数协同工作,以便它们返回索引值总和最高的单词

返回:这些函数组合起来将返回句子中每个单词的和,以确定哪个单词的和值最高

示例: 如果句子是“aa bb”,那么

“aa”<“bb”,因为“aa”==2和“bb”==4,所以此函数将返回单词“bb”,因为“aa”小于“bb”


我的尝试(与信息相关):

片段#1:

(将每个单词拆分为各个单词字符)

//代码片段#1
功能高(x){
const alph=“abcdefghijklmnopqrstuvxyz”;
常量ltrArr=x.split(“”).map((w)=>{
返回w.split(“”)
})
返回ltrArr
}

log(high(“这是一个测试句子”)/--返回单词/字母数组
您可以使用这样的链式方法

const sum = high('your sentece here').map((l) => { //finds the index of the individual letter in the alphabet and sums up the total.
  const index = alph.indexOf(l)+1
  return index
}).reduce((a,b) => a+b)

我可能误解了,但这就是你想要的吗

const alph=“abcdefghijklmnopqrstuvxyz”; 常量和=(句子)=>{ 让最高的={ 字:“, 分数:0 } 句子.拆分(“”).forEach(w=>{ 设s=0; w、 拆分(“”)。forEach(l=>{ s+=(alph.indexOf(l)+1); }) 如果(s>最高分数)最高={ 字:w, 分数:s }; }) 回报最高; } log(sum(‘这是一个测试句子’))
//--返回单词/字母数组我在第一个函数中删除了嵌套数组,因为它们没有真正的用途。如果是故意的,请告诉我

否则,这将提供组合功能到单个功能中:

功能高(x){
const alph=“abcdefghijklmnopqrstuvxyz”;
常量ltrArr=x.replace(“,”).split(“”)
常数和=ltrArr
.map((l)=>alph.indexOf(l)+1)
.减少((a,b)=>a+b);
回报金额;
}
log(高('这是一个测试语句')//返回字符串的索引和
让findHighestWord=句子=>{
让单词=句子。拆分(“”);
常数α='abcdefghijklmnopqrstuvwxyz';
让分数=单词.map(单词=>[…单词]
.map(char=>alpha.indexOf(char)+1)
.减少((a,b)=>a+b));
设index=scores.indexOf(Math.max(…scores));
返回{word:words[index],index:index,score:scores[index]};
};
让句子='这是一个zzzz句子';

console.log(findHighestWord(句子))@twominds根据您的新问题进行了更新。@twominds-我已修改,请查看:)非常好@Kinglish!谢谢你一直支持我。我知道原来的问题没有意义。出于性能原因,我刚才做了一个小编辑。(将s.highest比较从forEach循环中移出)请不要像得到答案后那样从根本上改变问题。改为问一个新的问题,让现有答案保持有效(并获得更多奖励),保持问答对的有用性。如果您需要讨论新问题,请创建一个新问题。@Yunnosch其他信息完全没有必要,只会混淆下一个试图回答或从中学习的人。鼓励编辑问题以改进它们(例如澄清、添加其他信息等)。但是,编辑一个问题以将其更改为另一个问题,这会使一个或多个答案无效,这是违反堆栈溢出策略的。你的编辑在这里这样做。策略是,具有编辑权限的其他用户应主动还原此类更改。我已还原了您的编辑。我们鼓励您这样做,也许您可以通过链接了解更多的上下文。我们想提供帮助,但您的新/附加问题需要是一个新问题。@Makyen没有改变问题,我只是重新措辞,因为我不确定我最初想要什么。幸运的是,社区帮助了我,使我能够提出一个更好的问题。谢谢你的反馈!我知道您的更改使问题更加通用,但仍然涵盖了类似的基本问题。但是,您提问方式的变化,从“我如何结合这两个功能”到“为我这样做”,导致现有答案与第二个问题不太相符,这可能导致现有答案无法收到,也可能导致新答案(即,无法获得赞成票和/或反对票)。对已经回答了您原始问题的用户来说,做出这样的更改是不公平的,这就是为什么做出这样的更改是违反政策的。