首页 > 解决方案 > 不使用常用方法在 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()

取消移位()

的价值()

我一直在寻找解决方案,但一直找不到。谢谢你的帮助。

标签: javascriptstringfunctionchar

解决方案


只是一个想法,没有给出部分问题的答案,将具有正值的角色移动到右侧。

例如取一个较长的单词并选择'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'保存位置的字符并将索引的偏移量设置为零,

  • 继续直到字符串结束。


推荐阅读