javascript - 不使用常用方法在 JS 中重新排序字符串
问题描述
谢谢阅读。我目前正在写一个作业,我的任务是制作函数,同时列出作业的“禁止”方法。有问题的函数从用户那里获取一个字符串,然后从该字符串中获取一个字符,并根据从用户那里获取的最终值将其向右或向左移动。
即字符串 = 字,字符 = W,值 = +2(右)。最终产品 = orWd
显然,被禁止的方法是最有用的方法,因为作业旨在教您如何使用循环、数组和函数来实现这些方法的目的。
我已经开始寻找并选择要移动的字符,但我一直在弄清楚如何在字符串中移动这个字符。我考虑过将整个字符串重建为新字符串,但这似乎效率低下。
var x=prompt("Please enter a word.");
var y=prompt("Please enter a character to select.");
var z=prompt("Please enter a value to move the selected character by " + " (Negative values move left, positive values move right.)");
function questionOne(stringInput,charInput,numInput) {
var stringLength= stringInput.length;
for(i=0;i<stringLength;i++){
var stringChar=stringInput.charAt(i);
if (stringChar === charInput){
var newWord;
for (count=0;count<stringLength;count++){
}
}
}
编辑:“禁止”方法的完整列表。
字符串内置函数
以。。结束()
包括()
指数()
最后索引()
语言环境比较()
匹配()
重复()
代替()
搜索()
片()
分裂()
以。。开始()
substr()
子串()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
修剪()
修剪左()
修剪右()
的价值()
数组内置函数
连接()
复制内()
每一个()
充满()
筛选()
寻找()
查找索引()
forEach()
指数()
是数组()
加入()
最后索引()
地图()
流行音乐()
推()
减少()
减少权利()
撤销()
转移()
片()
一些()
种类()
拼接()
toString()
取消移位()
的价值()
我一直在寻找解决方案,但一直找不到。谢谢你的帮助。
解决方案
只是一个想法,没有给出部分问题的答案,将具有正值的角色移动到右侧。
例如取一个较长的单词并选择'wording'
和字符'r'
并将2
字母向右移动两个位置。
0 1 2 3 4 5 6 indices
v position of character before reordering
w o |r d i| n g original word
w o |d i r| n g result
^ position of character after reordering
0 0 1 1 0 0 0 offset
你能看到的是
如果
'r'
找不到字符,则在索引处取字母,如果找到该字符
'r'
,则使用偏移量 1 和实际索引来获取字母,如果索引等于交换字符的位置加上移动值,则取
'r'
保存位置的字符并将索引的偏移量设置为零,继续直到字符串结束。
推荐阅读
- docker - 如何在 jenkins 中构建 dotnetcore 项目?
- javascript - 尝试登录时代码返回 net::ERR_EMPTY_RESPONSE。当 true 应该打开 LoggedIn.html 页面
- java - Pentaho 用户控制台缺少用于修改的 Java 脚本值的“MultipartEntityBuilder”
- r - 允许 MLE 中的估计参数因国家/地区而异
- python - 使用python消除两个文本块之间的重叠
- reactjs - 来自自定义钩子的 Useeffect 依赖列表警告
- java - 为什么我得到这个空引用对象?
- ios - FCM 在 WiFi 上一段时间后未收到通知
- outlook - 如何发送 HTML 电子邮件模板保留 Outlook 条件语句
- asp.net-core-mvc - 在 ASP.Net Core 上的 UnitOfWork 模式中从上下文构建