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

36

我有一个数组,其中的内容如下:

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

是否可以在数组的每个元素前面追加一个 # 符号?

谢谢。

7个回答

61

ES6的示例

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

结果:

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

请考虑编辑您的帖子,添加更多关于代码的解释以及为什么它可以解决问题的说明。一个主要只包含代码的答案(即使它是有效的)通常不会帮助提问者理解他们的问题。 - SuperBiasedMan

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

3
数组.forEach方法遍历数组中的每个元素,对于每个元素执行一个函数。在这个例子中,箭头函数将当前元素添加了 "#" 前缀,但并没有改变原始数组中的元素。 - Bill Somen

20

遍历数组并仅添加 #

var arr = [your array];

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

FIDDLE

在更新的浏览器中,您可以这样做

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

我能理解新手这样做,但我认为高声望的用户不应该回答这样的“问题”。投票关闭(加上友好的“你尝试过什么”评论)会更有帮助。 - georg
2
@thg435 - 对我来说,这似乎是一个合理的问题,即使这不是一件非常困难的事情,或者只需要进行一些试错就可以解决。 - adeneo
要求提供代码的问题必须展示对问题的基本理解。请包括尝试过的解决方案,为什么它们不起作用以及期望的结果。 - georg
1
@thg435 - 这是真的,如果你觉得它应该关闭,那就投票支持关闭,这取决于你。 - adeneo
当然了,我已经给你的回答点了踩。在这里,"Gimme some codez"这样的问题以及"Gimme some repz"这样的回答是不合适的。 - georg
@thg435 这个问题很清晰,对于新手来说也不算意外,我认为它值得一点帮助。为什么不发表评论来解释规则呢? - user1636522

12

在 ES6 中,简洁又甜美,代码如下:

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

2
您可以像这样做:
array = ('#' + array.join('#')).match(/#[^#]*/g) || []; // null || []

以下这个技巧同样有效,但我想知道为什么 split 忽略了第一个井号(#)...
array = ('#' + array.join('#')).split(/(?=#)/);

事实上,我更倾向于这种情况:"#a#b#c" -> ["", "#a", "#b", "#c"]

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


@acostache 更加棘手,但可能更昂贵 :-) - user1636522

1
使用forEach方法(参考资料
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;
});

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];   
    }    

看演示 这里

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接