我正在尝试将一组字符串组合成一个带衬里的变量
因此,例如,我希望最终结果呈现为:
"tag[]=sku_helloworld&tag[]=sku_bridesdark&tag[]=stuk_home"
这就是我现在所拥有的,而且我不确定如何将它们完全结合起来?
var productSku = $('.social-module').data('magento-sku'),
str = productSku,
skuList = str.split(',');
for (var i = 0; i < skuList.length; i++) {
console.log("tag[]=" + skuList[i] + "&");
}
答案 0 :(得分:1)
您可以稍微简化一下:
var productSku = $('.social-module').data('magento-sku'),
str = productSku,
skuList = 'tag[]=' + str.split(',').join('&tag[]=');
请参阅updated JSFiddle。
答案 1 :(得分:1)
您可以使用Array#map()
和Array#join()
var skuList = ['sku_helloworld', 'sku_bridesdark', 'stuk_home'],
result = skuList.map(function (a) {
return 'tag[]=' + a;
}).join('&');
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
&#13;
ES6
var skuList = ['sku_helloworld', 'sku_bridesdark', 'stuk_home'],
result = skuList.map(a => 'tag[]=' + a).join('&');
document.write('<pre>' + JSON.stringify(result, 0, 4) + '</pre>');
&#13;
答案 2 :(得分:0)
将它放在一个字符串中,然后打印出来。
var productSku = $('.social-module').data('magento-sku'),
str = productSku,
skuList = str.split(',');
var result = "";
for (var i = 0; i < skuList.length; i++) {
result += "tag[]=" + skuList[i] + "&";
console.log(result);
}
答案 3 :(得分:0)
您可以使用reduce(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce)
skuList.reduce(function(a, b) { return a + "&tag[]=" + b }, "").substring(1)
substring
负责删除第一个&
答案 4 :(得分:0)
您应该可以使用Array.join()
方法来处理此问题,但是您需要明确添加第一个分隔符:
// Array.join will build a string using your delimiter '&tag[]=' between
// each of the items in the array
var result = 'tag[]=' + skuList.join('&tag[]=');
答案 5 :(得分:0)
您可以生成如下列表:
skuList = str.split(',').map(function(item) {return "tag[]=" + item}).join('&');
console.log(skuList);
答案 6 :(得分:0)
这是一个没有循环的单行:
'tag[]=' + productSku.split(',').join('&tag[]=')
var productSku = $('.social-module').data('magento-sku');
alert('tag[]=' + productSku.split(',').join('&tag[]='));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div data-magento-sku="sku_helloworld,sku_bridesdark,stuk_home" class="social-module"></div>