【问题标题】:Adding text to beginning of each array element在每个数组元素的开头添加文本
【发布时间】:2013-12-10 15:28:13
【问题描述】:

我有一个包含如下内容的数组:

["ZS125-48ATab", "STR125YBTab", "KS125-24Tab", "ZS125-50Tab", "DFE125-8ATab", "ZS125-30Tab", "HT125-8Tab", "HT125-4FTab", "STR50Tab"] 

是否可以将# 符号附加到数组中每个元素的前面。

谢谢。

【问题讨论】:

    标签: javascript arrays


    【解决方案1】:

    ES6 示例

    var arr = ['first', 'second', 'third'];    
    arr = arr.map(i => '#' + i);
    

    结果:

    console.log(arr); // ["#first", "#second", "#third"]
    

    【讨论】:

    • 请考虑编辑您的帖子,以添加更多关于您的代码的作用以及它为何能解决问题的说明。一个大部分只包含代码的答案(即使它正在工作)通常不会帮助 OP 理解他们的问题。
    【解决方案2】:
    for(var i=0;i<array.length;i++){
        array[i]="#"+array[i];
    }
    

    【讨论】:

    • `array.forEach(item => { item = "#" + item }) `
    【解决方案3】:

    遍历数组并添加#

    var arr = [your array];
    
    for (var i=arr.length; i--;) {
        arr[i] = '#' + arr[i];
    }
    

    FIDDLE

    在较新的浏览器中你可以这样做

    arr = arr.map(function(e) {return '#' + e});
    

    【讨论】:

    • 我可以理解新手何时这样做,但我认为高级用户不应该回答这样的“问题”。近距离投票(+ 友好的“你试过什么”评论)会更有帮助。
    • @thg435 - 对我来说似乎是一个合理的问题,即使这不是一件很难做到的事情,或者通过一些试验和错误来解决。
    • “要求代码的问题必须证明对正在解决的问题有最低限度的了解。包括尝试的解决方案、它们为什么不起作用以及预期的结果。”
    • @thg435 - 确实如此,如果您认为应该关闭它,请投票支持,这取决于您。
    • 我当然做了,但对你的投了反对票。 “给我一些 codez”问题以及“给我一些 repz”答案不属于这里。
    【解决方案4】:

    在 ES6 中简单而甜蜜,

    array.map((line) => `#${line}`);
    

    【讨论】:

      【解决方案5】:

      你可以这样做:

      array = ('#' + array.join('#')).match(/#[^#]*/g) || []; // null || []
      

      下面的技巧也有效,但我想知道为什么split 忽略了第一个锐...

      array = ('#' + array.join('#')).split(/(?=#)/);
      

      确实,我更期待这种情况:"#a#b#c" -&gt; ["", "#a", "#b", "#c"]

      无论如何,我更喜欢第二种方法,因为match 在失败的情况下返回null

      【讨论】:

      • @acostache 更棘手但可能更贵:-)
      【解决方案6】:

      使用forEach方法(reference)

      var array = ["ZS125-48ATab", "STR125YBTab", "KS125-24Tab", "ZS125-50Tab", "DFE125-8ATab", "ZS125-30Tab", "HT125-8Tab", "HT125-4FTab", "STR50Tab"];
      array.forEach(function(element, index) {
          array[index] = '#' + element;
      });
      

      【讨论】:

        【解决方案7】:

        以下代码可以完成这项工作:

        var t = ["ZS125-48ATab", "STR125YBTab", "KS125-24Tab", "ZS125-50Tab", "DFE125-8ATab", "ZS125-30Tab", "HT125-8Tab", "HT125-4FTab", "STR50Tab"];
        
            for(var i=0;i<t.length;i++){
                t[i] = "#"+t[i];   
            }    
        

        查看演示here

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-09-07
          • 2011-04-15
          • 2011-12-25
          • 1970-01-01
          • 1970-01-01
          • 2021-03-20
          相关资源
          最近更新 更多