Frage Hinzufügen von Text zum Anfang jedes Array-Elements


Ich habe ein Array, das den Inhalt wie folgt enthält:

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

Ist es möglich, ein # Symbol an der Vorderseite jedes Elements im Array.

Vielen Dank.


14
2017-12-10 15:28


Ursprung


Antworten:


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

14
2017-12-10 15:30



Iteriere über das Array und füge einfach hinzu #

var arr = [your array];

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

GEIGE

In neueren Browsern könnten Sie das tun

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

16
2017-12-10 15:29



Beispiel für ES6

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

Ergebnis:

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

10
2017-10-12 11:17



Du kannst es so machen:

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

Der folgende Trick funktioniert auch, aber ich frage mich warum split ignoriert die erste scharfe ...

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

Tatsächlich habe ich dieses Szenario eher erwartet: "#a#b#c" -> ["", "#a", "#b", "#c"].

Jedenfalls bevorzuge ich die zweite Methode seither match kehrt zurück null im Falle eines Fehlers.


3
2017-12-10 15:38



Benutze die forEach Methode(Referenz)

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
2017-12-10 15:31



Der folgende Code würde den Job erledigen:

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

Siehe Demo Hier


1
2017-12-10 15:32



Einfach und süß in ES6 wie,

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

0
2018-06-23 17:48