Преобразувайте масива в низ, разделен с интервал, като същевременно обединявате отделни стойности

Имам поле с няколко select на моята страница. Мога лесно да получа стойностите на всички избрани дъщерни options в jQuery по този начин:

$("#select").val();

Това ми дава масив като този:

["Hello", "Test", "Multiple Words"]

Сега искам да преобразувам този масив в низ, разделен с интервал, но също така съединя отделните думи във всяка стойност с тире, така че да получа следното:

"Hello Test Multiple-Words"

Как да го направя?


person daGUY    schedule 30.01.2013    source източник
comment
whathaveyoutried.com   -  person Jay Blanchard    schedule 31.01.2013


Отговори (5)


Ако Multiple-Words може да бъде като Multiple Words, тогава можете просто да използвате .join и да получите крайния изход като "Hello Test Multiple Words".

Ако не, можете да напишете цикъл като по-долу, за да получите резултата.

var myList = ["Hello", "Test", "Multiple Words"];
var result = '';
for (var i = 0; i < myList.length; i++) {
   result += myList[i].replace(/\s/g, '-') + ' ';
}

ДЕМО: http://jsfiddle.net/bmXk5/

person Selvakumar Arumugam    schedule 30.01.2013

Ето един прост ред с Array.map:

var arr = ["Hello", "Test", "Multiple Words"];
arr.map(function(val) { return val.replace(' ', '-') }).join(' ');
person dan-lee    schedule 30.01.2013

Това трябва да ви свърши работа.

function combineWords(arr) {
    var i, l;
    for(i = 0, l = arr.length; i < l; i++) {
        arr[i] = arr[i].replace(' ', '-') ;
    }
    return arr;
}
person Kyle    schedule 30.01.2013

person    schedule
comment
Какъв е смисълът да се използва регулярен израз за разлика от String.replace(" ", "-")? - person crush; 31.01.2013
comment
използването на низ като първи параметър на функцията replace ще замени само първото срещане, докато използването на регулярен израз с глобален флаг ще замени всички срещания. - person CD..; 31.01.2013
comment
Странно - не поведението, което бих очаквал. Благодаря, че изясни това. - person crush; 31.01.2013

person    schedule
comment
Можете да конструирате низа в същия for цикъл, който също запазва оригиналната стойност в списъка. - person Selvakumar Arumugam; 31.01.2013