我尝试删除多个类别中的重复词。为此,我有一个名为users的对象,其中包含user发送的单词。
我使用了一个新的对象,它包含在字典中找到的单词及其类别。
null
const Themes = {
Animals: [
'ZOE',
'ZEBRA'
],
Names: [
'ZOE'
]
}
let users = []
let increment = 0
let copyArr = []
checkProposition()
function checkProposition() {
users.push({
id: '1',
words: ['ZOE', 'ZEBRA'],
score: 0
})
users.forEach(user => {
copyArr.push({
id: user.id,
wordsFound: [],
saveCategory: []
})
user.words.forEach(word => {
algorithmCore(word)
})
increment++
})
console.log(copyArr)
}
function algorithmCore(word) {
for (var key in Themes) {
for (var answer in Themes[key]) {
if (word == Themes[key][answer]) {
copyArr[increment].wordsFound.push(word)
copyArr[increment].saveCategory.push(key)
}
}
}
return
}
null
输出复制rn
{ id: '1', wordsFound: [ 'ZOE', 'ZOE', 'ZEBRA' ], saveCategory: [ 'Animals', 'Names', 'Animals' ]}
预期产出:
{ id: '1', wordsFound: [ 'ZOE', 'ZEBRA' ], saveCategory: [ 'Names', 'Animals' ]}
应该是:ZOE(名字)ZEBRA(动物)
如果用户发送:
users.push({
id: '1',
words: ['ZOE', 'ZOE'],
score: 0
})
应该是:
{ id: '1', wordsFound: [ 'ZOE', 'ZOE' ], saveCategory: [ 'Names', 'Animals' ]}
但如果用户发送:
users.push({
id: '1',
words: ['ZOE', 'ZOE', 'ZEBRA'],
score: 0
})
应该是:
{ id: '1', wordsFound: [ 'ZOE', 'ZOE' ], saveCategory: [ 'Names', 'Animals' ]}
or
{ id: '1', wordsFound: [ 'ZOE', 'ZEBRA' ], saveCategory: [ 'Names', 'Animals' ]}
null
const Themes = {
Animals: [
'ZOE',
'ZEBRA'
],
Names: [
'ZOE'
]
}
let users = []
let increment = 0
let copyArr = []
let usedAnswers=[];
checkProposition()
function checkProposition() {
users.push({
id: '1',
words: ['ZOE', 'ZOE','ZEBRA'],
score: 0
})
users.forEach(user => {
usedAnswers[increment]=[]
copyArr.push({
id: user.id,
wordsFound: [],
saveCategory: []
})
user.words.forEach(word => {
algorithmCore(word,usedAnswers[increment])
})
increment++
})
console.log(copyArr)
}
function algorithmCore(word, used) {
let wordAdded = false;
for (var key in Themes) {
for (var answer in Themes[key]) {
const wordKey=`${word}(${key})`;
if (word == Themes[key][answer] && !wordAdded && !used.includes(wordKey)) {
wordAdded = true;
used.push(wordKey)
copyArr[increment].wordsFound.push(word)
copyArr[increment].saveCategory.push(key)
}
}
}
return
}