【发布时间】:2013-12-10 15:28:13
【问题描述】:
我有一个包含如下内容的数组:
["ZS125-48ATab", "STR125YBTab", "KS125-24Tab", "ZS125-50Tab", "DFE125-8ATab", "ZS125-30Tab", "HT125-8Tab", "HT125-4FTab", "STR50Tab"]
是否可以将# 符号附加到数组中每个元素的前面。
谢谢。
【问题讨论】:
标签: javascript arrays
我有一个包含如下内容的数组:
["ZS125-48ATab", "STR125YBTab", "KS125-24Tab", "ZS125-50Tab", "DFE125-8ATab", "ZS125-30Tab", "HT125-8Tab", "HT125-4FTab", "STR50Tab"]
是否可以将# 符号附加到数组中每个元素的前面。
谢谢。
【问题讨论】:
标签: javascript arrays
ES6 示例
var arr = ['first', 'second', 'third'];
arr = arr.map(i => '#' + i);
结果:
console.log(arr); // ["#first", "#second", "#third"]
【讨论】:
for(var i=0;i<array.length;i++){
array[i]="#"+array[i];
}
【讨论】:
遍历数组并添加#
var arr = [your array];
for (var i=arr.length; i--;) {
arr[i] = '#' + arr[i];
}
在较新的浏览器中你可以这样做
arr = arr.map(function(e) {return '#' + e});
【讨论】:
在 ES6 中简单而甜蜜,
array.map((line) => `#${line}`);
【讨论】:
你可以这样做:
array = ('#' + array.join('#')).match(/#[^#]*/g) || []; // null || []
下面的技巧也有效,但我想知道为什么split 忽略了第一个锐...
array = ('#' + array.join('#')).split(/(?=#)/);
确实,我更期待这种情况:"#a#b#c" -> ["", "#a", "#b", "#c"]。
无论如何,我更喜欢第二种方法,因为match 在失败的情况下返回null。
【讨论】:
使用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;
});
【讨论】:
以下代码可以完成这项工作:
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
【讨论】: