如何在输出中包含 .some 的值?

How to include a value from .some in an output?

我正在检查 sentences 数组中的单词是否缩略:

const sentences = ['i do not', 'aren\'t you']

const result = sentences.reduce((result, sentence, index, array) => {
  const noncontractions = ['do not', 'are not']
  const isNoncontraction = noncontractions.some(noncontraction => sentence.includes(noncontraction))

  if (isNoncontraction) {
    result.push(sentence)
  }

  return result
}, [])

console.log(result) // list of sentences that aren't contracted.

现在,输出是 ['i do not']。但我还想包括与该项目相关的 noncontraction

所以输出看起来像:[{ sentence: 'i do not', noncontraction: 'do not'}]

我不确定如何实现这一点,因为 noncontraction.some“循环”中。

使用 find() 而不是 some()。然后你可以将找到的内容与句子结合起来。

const sentences = ['i do not', 'aren\'t you']

const result = sentences.reduce((result, sentence) => {
  const noncontractions = ['do not', 'are not']
  const noncontraction = noncontractions.find(noncontraction => sentence.includes(noncontraction))

  if (noncontraction) {
    result.push({sentence, noncontraction})
  }

  return result
}, [])

console.log(result) // list of sentences that aren't contracted.