【问题标题】:How to repeat characters in a string in javascript by using slice function?如何使用切片函数在javascript中重复字符串中的字符?
【发布时间】:2016-11-27 06:06:34
【问题描述】:

谁能阐明如何用两个参数构建一个 javascript 函数:字符串和字符,并且仅通过使用 slice 方法,返回“a”在“lava”中出现的次数?

【问题讨论】:

  • 我想知道为什么要使用“切片”方法来搜索字符串中的字符,这种方法并不是要这样做的。此外,这对于表演来说可能是一个糟糕的选择,无论如何你不能用“only”切片方法来做到这一点,你必须将“a”与“lava”的每个字符进行比较。而是使用一个好的旧循环。
  • 再说一句,你的标题说“如何重复一个字符?”,但你的描述说“如何计算一个字符?”。哪个问题是正确的?请看stackoverflow.com/help/how-to-ask

标签: javascript character slice repeat


【解决方案1】:

无切片方法

var fruits= "lavaaagg";
var count=0;
for(var i=0;i<fruits.length;i++){
  if(fruits[i]!='a')
      count++;
 }
console.log(fruits.length-count);

【讨论】:

  • 哇.. 从来不知道像 c++ 这样的字符串访问在 JS 中是可能的。太棒了 +1
  • @Op 现在你真的想用切片方法计算a 的数量吗?
  • OP 有 1 个代表经常在发布后消失 x-)
  • @procrastinator 是的,好像我们遇到了一些问题
【解决方案2】:

我不确定你为什么需要 slice 方法。 slice 方法不适用于搜索子字符串(或您的情况下的字符),它提取子字符串。 这应该可以正常工作:

function howManyCharInStr(str, char) {
  return str.split(char).length - 1;
}

分步说明:

str.split(char)

创建一个 str 子字符串数组,使用 char 作为分隔符。例如:

'fooXbazXbar'.split('X')
// Evaluates to ['foo', 'baz', 'bar']
'lorem ipsum dolor'.split('m')
// Evaluates to ['lore', ' ipsu', ' dolor']

注意返回的数组长度为 n+1,其中 n 是分隔符的数量。所以使用

str.split(char).length - 1;

得到想要的结果。

【讨论】:

    【解决方案3】:

    获取字符数

     <script type="text/javascript">
        function FindResults() {
            var firstvariable= document.getElementById('v1');
            var secondvariable = document.getElementById('v2');
            var rslt = GetCharecterCount(firstvariable, secondvariable );
        }
        function GetCharecterCount(var yourstring,var charecter){
              var matchesCount = yourstring.split(charecter).length - 1;
        } 
     </script>
    

    使用切片方法

    var arr = yourstring.split(charecter);
    
    for( var i = 0, len = arr.length; i < len; i++ ) {
        var idx = yourstring.indexOf( arr[i] );
        arr[i] = pos = (pos + idx);
        str = str.slice(idx);
    }
    
    var x= arr.length-1;
    

    示例http://jsfiddle.net/rWJ5x/2/

    【讨论】:

    • “切片”方法在哪里? :-)
    • 字数,为什么不 x-)
    【解决方案4】:

    使用切片方法

    function logic(str,char){
      var count = 0;
      for(var i = 0; i < str.length; i++){
        if(str.slice(i,i+1) == char){
          count++;
        }
      }
      return count;
    };
    console.log( "count : " + logic("lava","a") );

    【讨论】:

      猜你喜欢
      • 2012-02-10
      • 2018-06-14
      • 2017-12-09
      • 2022-01-01
      • 2023-01-28
      • 1970-01-01
      • 2019-03-28
      • 2020-11-27
      • 2019-07-25
      相关资源
      最近更新 更多