数组
var array = [
{
item: "abcd1234",
data: "something"
},
{
item: "4321dcba",
data: "something"
},
];
数组长度可以是1到10
我正在为所有这些项目发出http请求。
array.forEach(function(item) {
var url = "www.something.com?id=" + item.item;
//making request
});
现在我需要每个阵列1到10个请求取决于数组长度。
假设我有10个阵列,其中包含10个元素。它的100个要求。
如果我像这样使用url
,我每个阵列只能提出1个请求 www.something.com?id=abcd1234&id2=4321dcba
如果我不知道有多少元素,我如何将所有数组值循环到网址?
答案 0 :(得分:2)
使用数组样式的URL参数名称。大多数服务器端库和框架都会将这些库和框架收集到一个数组中(例如$_GET['id']
将是PHP中的数组)。
您可以使用.map()
返回所有参数的数组,并使用.join()
将其与&
相关联。
var array = [{
item: "abcd1234",
data: "something"
},
{
item: "4321dcba",
data: "something"
},
];
var url = 'www.something.com?' +
array.map(function(item) {
return 'id[]=' + encodeURIComponent(item.item);
}).join('&');
console.log(url);

答案 1 :(得分:1)
var url = "www.something.com?"+items.map((item,id)=>"id"+((id||-1)+1)+"="+item.item).join("&");
您可以将每个项目映射到其查询参数,然后使用& ...
加入答案 2 :(得分:1)
您可以使用reduce()
方法:
const array = [
{
item: "abcd1234",
data: "something"
},
{
item: "4321dcba",
data: "something"
}
];
const url = array.reduce(
(acc, x, i) => acc + (i === 0 ? `?id=${x.item}` : `&id${i + 1}=${x.item}`),
'www.something.com'
);
console.log(url);
如果您的数组看起来像["abcd1234", "4321dcba"]
,请尝试:
const array = ['abcd1234', '4321dcba'];
const url = array.reduce(
(acc, x, i) => acc + (i === 0 ? `?id=${x}` : `&id${i + 1}=${x}`),
'www.something.com'
);
console.log(url);