В настоящее время я пытаюсь решить вопрос ниже в Codewars в javascript. Ниже вопрос:
«Данные два массива строк a1 и a2 возвращают отсортированный массив r в лексикографическом порядке строк a1, которые являются подстроками строк a2».
Ниже приведен код, который я написал для этого вопроса:
function inArray(array1,array2){
var result = [];
var newResult = [];
for(var i = 0; i < array2.length; i++) {
for(var j = 0; j < array1.length; j++) {
if(array2[i].includes(array1[j])) {
result.push(array1[j])
}
}
}
for(var k = 0; k < result.length; k++) {
if(result[k] !== result[k+1]) {
newResult.push(result[k]);
}
}
return newResult.sort();
}
Вот примеры тестов, которые я должен пройти:
a2 = ["lively", "alive", "harp", "sharp", "armstrong"]
a1 = ["xyz", "live", "strong"]
Test.assertSimilar(inArray(a1, a2), ["live", "strong"])
a1 = ["live", "strong", "arp"]
Test.assertSimilar(inArray(a1, a2), ["arp", "live", "strong"])
a1 = ["tarp", "mice", "bull"]
Test.assertSimilar(inArray(a1, a2), [])
Мой код, кажется, проходит все примеры тестов, но я не могу пройти все спецификации. Пишет, что я не выполняю 5 требований из 10. Я не знаю, почему я терплю неудачу в этих спецификациях. Есть ли проблема с моим кодом или есть ли способ улучшить мой код?