如何通过作为对象中值的回调返回修改后的字符串?

问题描述 投票:0回答:0

我必须编写一个接受句子和对象作为参数的函数。 该对象包含作为键的后缀和作为值的回调。该函数应返回一个新句子,其中根据与单词结尾的后缀对应的回调对原始句子中的单词进行修改,如果没有相应的后缀则返回未修改的单词。

这是我的东西

let suffixCipher = function(sent, obj) {
    let array = sent.split(" ");
    let newSent = [];

    for(let i = 0; i < array.length; i++){
        let word = array[i];
        let keys = Object.keys(obj);
        for(let j =0; j < keys.length; j++){
            let suffix = keys[j];
            if(word.endsWith(suffix)){
                newSent.push(obj[suffix](word))
            } else if (!word.endsWith(suffix)){
                newSent.push(word);
            }
        }
    }
    return newSent.join(" ");
};

我正在返回重复的单词并且无法弄清楚为什么: “quietlee quietly and gentle gently visualizer”变成了“INCREMENTAL incremental progressth isth very INSTRUMENTAL instrumental”。

javascript function object callback
© www.soinside.com 2019 - 2024. All rights reserved.