我的页面上有一个多select
个框。我可以像这样轻松地获取jQuery中所有选定子option
的值:
$("#select").val();
这给了我一个像这样的数组:
["Hello", "Test", "Multiple Words"]
现在,我想将此数组转换为以空格分隔的字符串,但还使用短划线连接每个值中的单个单词,以便我最终得到:
"Hello Test Multiple-Words"
我将如何做到这一点?
答案 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, '-') + ' ';
}
答案 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(' ');