在每个数组元素的开头添加文本

时间:2013-12-10 15:28:13

标签: javascript arrays

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

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

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

感谢。

7 个答案:

答案 0 :(得分:21)

for(var i=0;i<array.length;i++){
    array[i]="#"+array[i];
}

答案 1 :(得分:18)

迭代数组,只需添加#

var arr = [your array];

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

FIDDLE

在较新的浏览器中,您可以

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

答案 2 :(得分:17)

ES6的例子

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

结果:

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

答案 3 :(得分:6)

在ES6中简单而甜美

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

答案 4 :(得分:3)

你可以这样做:

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

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

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

实际上,我更期待这种情况:"#a#b#c" -> ["", "#a", "#b", "#c"]

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

答案 5 :(得分:1)

使用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;
});

答案 6 :(得分:1)

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

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