В настоящее время я пытаюсь решить ниже вопрос в Codewars в javascript. Ниже приведен вопрос: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 спецификаций. Я не знаю, почему я терпеть неудачу в этих спецификациях. Есть ли проблема с моим кодом или есть ли способ улучшить код?