首页 > 解决方案 > 为什么带有foreach的JS concat方法返回空字符串?

问题描述

新手在这里,请原谅无知。当我使用 forEach 和 concat 方法遍历数组时,我想知道为什么我的结果变量是一个空字符串。

const concatSpeakersText = arr => {
    const speakerOneText = ''
    const speakerTwoText = ''

    arr.forEach(utterance => {
        utterance.speaker === '1' ? speakerOneText.concat(' ', utterance.text) : speakerTwoText.concat(' ', utterance.text)
    })

    console.log(speakerOneText)
    console.log(speakerTwoText)
}

标签: javascriptstring-concatenation

解决方案


您需要使用扬声器分配给变量String#concat或使用扬声器。

const concatSpeakersText = arr => {
    const speakers = { speakerOneText: '', speakerTwoText: '' };

    arr.forEach(utterance => {
        speakers[utterance.speaker === '1'
            ? 'speakerOneText'
            : 'speakerTwoText'
        ] += ' ' + utterance.text;
    });

    console.log(speakers.speakerOneText)
    console.log(speakers.speakerTwoText)
}

推荐阅读