【问题标题】:Shifting string character left and right with conditions使用条件左右移动字符串字符
【发布时间】:2020-01-11 09:39:59
【问题描述】:

我需要一些帮助,我对编程这件事真的很陌生,我一直在尝试完成一个初学者挑战,主要来自我的朋友,所以我遇到了一个问题,它几乎和 @ 一样987654321@.

除了我的字符串 = abcdXYZefgXYZhij,条件是文本“XYZ”不能移动,所以基本上我只需要移动小写字符。

如果leftShifts=6, rightShifts=0,这是所需的输出

efXYZghijXYZabcd

这是我从链接中获得的代码

function getShiftedString(s, leftShifts, rightShifts) {
  const arr = Array.from(s);
  console.log(arr);
  const netLeftShifts = (leftShifts - rightShifts) % arr.length;
  return [...arr.slice(netLeftShifts), ...arr.slice(0, netLeftShifts)]
    .join('');
}
console.log(getShiftedString(s, leftShifts, rightShifts));

这是上面代码的结果

ZefgXYZhijabcdXY

如您所见,XYZ 与小写字母一起移动,我需要将其拆分并重新加入吗?如果有什么办法,请帮助和指导我。

【问题讨论】:

  • @Andreas 你好,我已经编辑过了,你能检查一下它是否足够好,可以再次打开吗?谢谢
  • 你有没有尝试过自己解决这个问题?作为一个初学者,我会从一个尽可能简单的脚本开始——这将是一个for 循环。

标签: javascript


【解决方案1】:

你可以在切片前添加一个条件:

if(str[0].match('[a-z]'))

仅当您的项目与一组小写字母的模式不匹配时,它才会返回 null。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-04
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-14
    相关资源
    最近更新 更多