2017-06-07 7 views
0

アレイドレイン配列の値は

var array = [ 
    { 
     item: "abcd1234", 
     data: "something" 
    }, 
    { 
     item: "4321dcba", 
     data: "something" 
    }, 
]; 

配列の長さは、私はすべてのこれらの項目のhttpリクエストを作ってるんだ1から10

にランダムにすることができます。

array.forEach(function(item) { 

    var url = "www.something.com?id=" + item.item; 

    //making request 

}); 

ここで、アレイあたり1〜10個の要求が配列の長さによって異なります。

私はそれに10個の要素を持つ10個の配列があるとします。その100の要求。

私は私がそこにあるどのように多くの要素がわからない場合は、URLにIループのすべての配列の値はどうすればよいこの

www.something.com?id=abcd1234&id2=4321dcba

のようなURLを使用する場合、私は、アレイごとに1つのだけの要求でこれを行うことができます?

答えて

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

+0

完璧。このような配列があればどうなりますか? 'var array = [" abcd1234 "、" 4321dcba "];' – Tonza

+1

@Tonza私の編集を参照してください。 –

1
var url = "www.something.com?"+items.map((item,id)=>"id"+((id||-1)+1)+"="+item.item).join("&"); 

あなたは、そのクエリパラメータに各項目をマッピングし、その後&に参加することができます...

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