私は現在、コードウォーズの以下の質問をjavascriptで解決しようとしています。以下が質問です。
「文字列 a1 と a2 の 2 つの配列が与えられると、a2 の文字列の部分文字列である a1 の文字列の辞書順でソートされた配列 r が返されます。」
以下は、この質問のために私が書いたコードです。
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), [])
私のコードはすべてのサンプル テストに合格しているように見えますが、すべての仕様に合格することはできません。10 個の仕様のうち 5 個の仕様に失敗していると書かれています。なぜ私がそれらの仕様に失敗しているのかわかりません。私のコードに問題がありますか、それともコードを改善する方法はありますか?