【发布时间】:2018-12-22 11:44:15
【问题描述】:
我得到的问题是这样的;
创建一个函数,该函数接受一个单词数组并返回一个仅包含回文的数组。
palindrome 是一个反向拼写相同的单词。
E.g. ['foo', 'racecar', 'pineapple', 'porcupine', 'pineenip'] => ['racecar', 'pineenip']
这是我创建的代码;
let arr = []
let str = words.slice(0)
let pal = str.toString().split("").reverse().join("")
console.log(pal);
for (let i = 0; i < words.length; i++) {
for (let k = 0; k < pal.length; k++) {
if (words[i] == pal[k]) {
arr.push(words[i])
}
}
}
return arr
}
这是我的代码所针对的测试;
describe("findPalindromes", () => {
it("returns [] when passed []", () => {
expect(findPalindromes([])).to.eql([]);
});
it("identifies a palindrom", () => {
expect(findPalindromes(["racecar"])).to.eql(["racecar"]);
});
it("ignores non-palindromes", () => {
expect(findPalindromes(["pineapple", "racecar", "pony"])).to.eql([
"racecar"
]);
});
it("returns [] when passed no palindromes", () => {
expect(findPalindromes(["pineapple", "watermelon", "pony"])).to.eql([]);
});
});
有人对如何使我的代码工作有任何建议吗?
【问题讨论】:
-
我不同意这一点,他不是在问如何进行回文检查。他在问他的特定解决方案不起作用。正如我在回答中所说,他只需要将变量 pal 拆分为数组形式即可。
标签: javascript string palindrome