将数组转换为以空格分隔的字符串,同时连接单个值

时间:2013-01-30 20:59:04

标签: javascript jquery arrays string delimiter

我的页面上有一个多select个框。我可以像这样轻松地获取jQuery中所有选定子option的值:

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

这给了我一个像这样的数组:

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

现在,我想将此数组转换为以空格分隔的字符串,但使用短划线连接每个值中的单个单词,以便我最终得到:

"Hello Test Multiple-Words"

我将如何做到这一点?

6 个答案:

答案 0 :(得分:4)

var values = $("#select").val();

for (var i = 0; i < values.length; ++i) {
    values[i] = values[i].replace(" ", "-");
}

var spaceDelimitedString = values.join(" ");

答案 1 :(得分:2)

var result = $.map($("#select").val() || [], function (x) {
    return x.replace(/\s/g, '-');
}).join(' ');

答案 2 :(得分:1)

如果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, '-') + ' ';
}

DEMO: http://jsfiddle.net/bmXk5/

答案 3 :(得分:0)

这应该适合你。

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

答案 4 :(得分:0)

var vals = ["Hello", "Test", "Multiple Words"];
var result = $.map(vals, function(str){ return str.replace(/\s/g, '-') })
  .join(' ');

答案 5 :(得分:0)

这是一个简单的单行班次Array.map

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