我目前正在尝试在 javascript 中的 Codewars 中解决以下问题。下面是问题:
“给定两个字符串数组 a1 和 a2 按 a1 字符串的字典顺序返回一个排序数组 r,这些字符串是 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), [])
我的代码似乎通过了所有示例测试,但我无法通过所有规范。它说我在 10 个规范中没有通过 5 个规范。我不知道为什么我不符合这些规格。我的代码有问题还是有什么办法可以让我的代码更好?