Javascript组合数组列表

Javascript combining array list

本文关键字:列表 数组 组合 Javascript      更新时间:2024-04-26

我正试图将一个字符串数组组合成一个单行变量

例如,我希望最终结果呈现为:

"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] + "&");
}

https://jsfiddle.net/tvdberf7/

您可以像这样简化它:

var productSku = $('.social-module').data('magento-sku'),
  str = productSku,
  skuList = 'tag[]=' + str.split(',').join('&tag[]=');

请参阅更新后的JSFiddle。

您可以使用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>');

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>');

将其放入一个字符串中,然后打印。

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

JSfiddle

您可以使用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负责移除第一个&

您应该能够使用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[]=');

你可以在这里看到一个例子。

您可以生成如下列表:

skuList = str.split(',').map(function(item) {return "tag[]=" + item}).join('&');
console.log(skuList);

这里有一个没有循环的单行:

'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>