【发布时间】:2018-10-08 03:21:28
【问题描述】:
我正在编写一个函数来比较两个长度相同的字母数组,以检查两个条件。
-
array1是否包含与array2相同的值(逐个键) - 同一索引位置的值是否相同?
我的函数实现这一点有一个副作用,如果array1 多次包含同一个字母,但array2 没有,它会将其标记为包含该字母。
这是我目前所拥有的:
const compareWords = (array1, array2) => {
let guess = []
array1.forEach((letter, i) => {
let guessMap = { letter }
// Does the word contain the correct letter
if (array2.includes(letter)) {
guessMap.includes = true
// Is the correct letter in the same position?
if (array1[i] === array2[i]) {
guessMap.samePos = true
} else {
guessMap.samePos = false
}
} else {
guessMap.includes = false
guessMap.samePos = false
}
guess.push(guessMap)
})
console.log(guess)
}
compareWords( ['M', 'O', 'M'], ['M', 'A', 'P'] )
带电流功能的输入/输出:
compareWords( ['M', 'O', 'M'], ['M', 'A', 'P'] )
[ { letter: 'M', includes: true, samePos: true },
{ letter: 'O', includes: false, samePos: false },
{ letter: 'M', includes: true, samePos: false } ]
所需的示例输入/输出
compareWords( ['M', 'O', 'M'], ['M', 'A', 'P'] )
[ { letter: 'M', includes: true, samePos: true },
{ letter: 'O', includes: false, samePos: false },
{ letter: 'M', includes: false, samePos: false } ]
compareWords( ['M', 'O', 'M'], ['M', 'A', 'M'] )
[ { letter: 'M', includes: true, samePos: true },
{ letter: 'O', includes: false, samePos: false },
{ letter: 'M', includes: true, samePos: true } ]
compareWords( ['M', 'O', 'M'], ['H', 'M', 'M'] )
[ { letter: 'M', includes: true, samePos: false },
{ letter: 'O', includes: false, samePos: false },
{ letter: 'M', includes: true, samePos: true } ]
【问题讨论】:
-
你的预期输出是什么?
标签: javascript string-comparison