我有一个函数,它接受一个字符串并返回一个函数。返回的函数接受一个数字并返回一个字符串。返回的函数返回按给定数字旋转的原始字符串。
我下面的代码有效。
function rotater (str){
return function (num){
let strArr = str.split('');
//console.log(strArr)
for (let i=0; i<num; i++){
//console.log(num)
let element = strArr[0];
//console.log(element)
strArr.push(element);
strArr.shift()
//console.log(strArr)
}
return strArr.join('')
}
}
const rotate = rotater('abcde');
rotate(4) // returns 'eabcd' as expected
我的问题是下一个测试规范。一旦弦完全旋转,它将随后向另一个方向旋转。
以下是测试规范:
it('once told to rotate fully will afterwards rotate in the other direction', () => {
const rotate = rotater('helloWORLD');
expect(rotate(1)).toEqual('elloWORLDh'); // same as before
expect(rotate(2)).toEqual('lloWORLDhe'); // same as before
rotate(10); // max value triggers rotation reversal
expect(rotate(1)).toEqual('DhelloWORL');
expect(rotate(2)).toEqual('LDhelloWOR');
expect(rotate(6)).toEqual('oWORLDhell');
rotate(10); // max value triggers rotation reversal
expect(rotate(1)).toEqual('elloWORLDh');
expect(rotate(2)).toEqual('lloWORLDhe');
expect(rotate(6)).toEqual('ORLDhelloW');
});
我对如何通过上述测试规范感到困惑。我需要在我的代码中插入一个 if 语句加上 break 吗?请让我通过上述规范缺少什么代码。
阿波罗的战车
相关分类