2016-04-21 16 views
-3

Ich baue mehrere Array, die ein Objekt enthalten, was ich will, ist ein neues erstellen, die jedes Objekt enthalten. Hier ist mein Code:Build neues Array, das mehrere Array enthält

for(i = 0; i < tabuser.length; i++){ 
    var urls = []; 
    urls.push({ 
     url: JSON.stringify("https://cubber.zendesk.com/api/v2/users/"+tabuser[i].id+"/tickets/requested.json") 
    }); 
console.log(urls); 

hier ist mein console.log(urls)

enter image description here

Ich möchte etwas wie folgt aus:

[ 
    { newurl: 'ajax1.html' }, 
    { newurl: 'ajax2.html' }, 
    { newurl: 'ajax3.html' } 
] 
+0

bewegen 'var Urls = [] verwenden würde;' aus Schleife – Grundy

+0

i schließen sein die Braquet später, so dass es normal ist, Ich habe nicht gezeigt – xenurs

Antwort

7

Sie erstellen das Array in jeder Schleife neu. Gehen Sie wie folgt statt:

var urls = []; 
for(i = 0; i < tabuser.length; i++){ 
    urls.push({url:JSON.stringify("https://cubber.zendesk.com/api/v2/users/"+tabuser[i].id+"/tickets/requested.json")}); 
} 
console.log(urls); 
+0

Ich akzeptiere Ihre Antwort so schnell wie möglich, es war ganz einfach .. :) – xenurs

6

Bewegen Sie die Array-Deklaration vor for. Wenn das innerhalb von for gehalten wird, wird die Variable für jede Iteration des Arrays initialisiert, und vorherige Daten darin werden geleert.

var urls = []; // <--- Move it here 

for(i = 0; i < tabuser.length; i++) { 
    urls.push({ 
     url: JSON.stringify("https://cubber.zendesk.com/api/v2/users/" + tabuser[i].id + "/tickets/requested.json") 
    }); 
} 

console.log(urls); 

Als Option können Sie auch Array#map verwenden. Beachten Sie auch, dass JSON.stringify nicht erforderlich ist, wenn id primitiv ist.

var urls = tabuser.map(obj => ({ 
    url: "https://cubber.zendesk.com/api/v2/users/" + obj.id + "/tickets/requested.json" 
})); 
3

Ich glaube, Sie dies wünschen:

console.log(JSON.stringify(urls)) 

Was Sie in der Konsole zu sehen, ist tatsächlich die Objekte aufgelistet werden, Sie müssen nur sie erweitern, indem Sie auf den nach unten klicken Pfeil neben [Objekt]

2

Sie können die aktuelle Array in ein neues Array wie dies leicht Karte:

var urls = tabuser.map(function(t){ 
    return { newurl: "https://cubber.zendesk.com/api/v2/users/"+t.id+"/tickets/requested.json" }; 
}); 
console.log(JSON.stringify(urls)) 
+0

Sie erhalten Array von Zeichenfolge, aber OP wollen Array von Objekten erhalten – Grundy

2

Sie können Fehler wie diese vermeiden, wenn map

var urls = tabuser.map(function(user){ 
    return { 
     url: JSON.stringify("https://cubber.zendesk.com/api/v2/users/" + user.id + "/tickets/requested.json") 
    }; 
}); 
1

Rewrite als

var urls = []; 
     for(i = 0; i < tabuser.length; i++) 
     { 
      urls.push({ 
    url:JSON.stringify("https://cubber.zendesk.com/api/v2/users/"+tabuser[i].id+"/tickets/requested.json") 
}); 
     } 
      console.log(urls); 
Verwandte Themen