Я пытаюсь сравнить ввод строк с Vanilla JS, и мне нужно сравнить их на символьной основе.А затем добавьте строку в массив, если строки отключены более чем на 5 символов.Для более простого объяснения я хочу сравнить эти строки:
- Embedded Systems part 1
- Economics part 1
- Embedded Systems part 2
- Экономика Часть 2
- Лаборатория встраиваемых систем
И поскольку я сравниваю их по символам, я хочу, чтобы мой массив в этом примере выглядел следующим образом после сравнения всех 4 строк:
array = [
"Embedded Systems Part 1",
"Economics Part 1",
"Embedded Systems Laboration
]
Итак, я уже пробовал использовать этот код:
let inputLines = inputArea.value.split("\n")
let summaryArray = []
let differenceVar = 0
for(let inputLine of inputLines) {
if (summaryArray.length == 0)
// Pushes the first input line, so that's in the array
summaryArray.push(inputLine)
}
// Using this kind of loop because I want to push to the array
// in this loop and then compare that newly pushed string to
// the rest of the strings as well
for (let i = 0; i < summaryArray.length; i++) {
const arrayLine = summaryArray[i]
for (let j = 0; j < arrayLine.length; j++) {
const arrayChar = arrayLine[j]
const inputChar = inputLine[j]
if (arrayChar != inputChar) {
differenceVar++
}
}
if (differenceVar > 5) {
differenceVar = 0
summaryArray.push(inputLine)
}
}
}
Я получаю этот массив:
array = ["SUMMARY:Embedded Systems Part 1",
"SUMMARY:Economics Part 1",
"SUMMARY:Embedded Systems Part 2",
"SUMMARY:Economics Part 2",
"SUMMARY:Economics Part 2",
"SUMMARY:Embedded Systems Laboration",
"SUMMARY:Embedded Systems Laboration",
"SUMMARY:Embedded Systems Laboration"]
Я понимаю, почему это происходит, потому что он проверяетвсе строки в массиве, а не только те, которые похожи ..
Я пытался сделать это с indexOf()
, но это не работает, потому что есть только бит, который каждый раз (почти), поэтому он всегда возвращает -1 ...
Любая помощь в том, как я должен думать об этой проблеме, очень ценится!
РЕДАКТИРОВАТЬ: Таким образом, мой пример, вероятно, не был лучшим, хотяУ меня есть догадка о том, как решить мою проблему.Но то, как на самом деле выглядят мои входные строки, выглядит следующим образом:
array = [
"SUMMARY:Kurs.grp: Inbyggda system för civilingenjörer Inbyggda system för civilingenjörer Sign: fni Moment: Ibs Program: Civilingenjör datateknik åk 3-",
"SUMMARY:Kurs.grp: Ekonomi för civilingenjörer Entreprenörskap och företagande för ingenjörer Sign: msbk Moment: Fl 8 Program: Byggingenjörsprogrammet åk 3 Civilingenjör datateknik åk 3- Dataingenjörsprogrammet åk 3 Högskoleingenjör - Ind design och produktutv åk 1- Högskoleingenjör - Industriell ekonomi åk 1- Högskoleingenjör - Maskinteknik åk 1-",
"SUMMARY:Kurs.grp: Inbyggda system för civilingenjörer Inbyggda system för civilingenjörer Sign: fni Moment: Ibs - Övning grupp 1 Program: Civilingenjör datateknik åk 3-",
"SUMMARY:Kurs.grp: Inbyggda system för civilingenjörer Inbyggda system för civilingenjörer Sign: fni Moment: Ibs - Övning grupp 2 Program: Civilingenjör datateknik åk 3-",
"SUMMARY:Kurs.grp: Ekonomi för civilingenjörer Entreprenörskap och företagande för ingenjörer Sign: msbk Moment: Fl 9 Program: Byggingenjörsprogrammet åk 3 Civilingenjör datateknik åk 3- Dataingenjörsprogrammet åk 3 Högskoleingenjör - Ind design och produktutv åk 1- Högskoleingenjör - Industriell ekonomi åk 1- Högskoleingenjör - Maskinteknik åk 1-",
]
Это продолжается почти для 40 строк.
И из этих входных строк я хотел бы, чтобы выходной массив выглядел следующим образом:
outputArray = [
"Inbyggda system för civilingenjörer Inbyggda system för civilingenjörer",
"Ekonomi för civilingenjörer Entreprenörskap och företagande för ingenjörer",
]