如何使用此数组进行循环?

时间:2019-07-19 17:50:29

标签: javascript loops

例如,在Javascript中,

我有这个数组:

var ids = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"];

(数组中的对象数量不断变化)

如何获得此结果(一个新数组),如何将其分开?例如3 (我可能需要为此做一个循环)

var urls= ["example.com/?id0=1&id1=2&id2=3", "example.com/?id3=4&id4=5&id5=6", "example.com/?id6=7&id7=8&id8=9", "example.com/?id9=10"] 

谢谢。

1 个答案:

答案 0 :(得分:2)

使用.mapid添加到ID中,并使用&将结果数组加入

var ids = ["10000000", "2000000", "1234567", "7654321", "7777777"];

var url = "example.com/?" + ids.map((id, ndx) => `id${ndx}=${id}`).join("&");

console.log(url);

编辑 根据已编辑的问题,您可以创建函数以将ID数组拆分为多个块,并使用与以前相同的代码,映射这些块以添加id并将它们与&

连接

var ids = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "xxx"];

const generateUrls = (ids, n = 3) => {
  var i,
    j,
    temparray,
    urls = [],
    ndx = 0;

  for (i = 0, j = ids.length; i < j; i += n) {
    temparray =
      "example.com/?" +
      ids
        .slice(i, i + n)
        .map(id => `id${ndx++}=${id}`)
        .join("&");
    urls.push(temparray);
  }

  return urls;
};

const result = generateUrls(ids, 3);

console.log(result);