【问题标题】:Using loops instead of substring. Array loops?使用循环而不是子字符串。数组循环?
【发布时间】:2016-05-30 10:48:13
【问题描述】:

我不确定这是否是一个愚蠢的问题,但我可以写一些不使用子字符串而返回子字符串的东西吗?

例如通常你会这样写:

var str = "Hello world";
var res = str.substring(1, 4);

我可以使用循环来代替吗?或者那不可能?我将如何开始呢?我知道这与数组有关。

会不会像 A[i] 并添加循环?

【问题讨论】:

  • 你可以...有可能...使用+=进行连接...试试这个:var str = "Hello world"; var op = ''; for (var i = 1; i < 4; i++) { op += str[i]; } alert(op); var res = str.substring(1, 4); alert(res);
  • var str = "Hello world" 这样的字符串可以被视为一个数组。所以,如果你运行str[0],你会得到"H"
  • 这不是一个愚蠢的问题,但我可以问why你会尝试这样做吗?
  • @RayonDabre 太棒了,正是我需要的,谢谢!

标签: javascript arrays loops substring


【解决方案1】:

如果你真的想使用数组和索引,你可以这样做:

var str = "Hello world";
var res = "";
var first_char = 1; // inclusive
var last_char = 4; // exclusive


for(var i = first_char; i < last_char; i++) {
	res += str[i];
}

alert(res);

【讨论】:

    【解决方案2】:

    但是我可以写一些不使用返回子字符串的东西吗 子串?

    不知道你为什么不想使用substring,希望slice没有问题

    str.slice(1,5); //outputs "ello"
    

    或者,如果你想让它更复杂,那么

    str.split("").splice(1,4).join(""); //outputs "ello"
    

    这个把str当作数组,然后根据索引过滤掉数据

    str.split("").filter( function(value, index){ if ( index >= 1 && index < 5 ) {return true;} else {return false;} } ).join(""); //outputs "ello"
    

    【讨论】:

    • 我不确定,但我认为这个问题是一个学习练习。
    • 我缺少一个 jQuery 解决方案!
    猜你喜欢
    • 2017-03-21
    • 1970-01-01
    • 2012-10-28
    • 1970-01-01
    • 2015-08-02
    • 2018-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多