Come spingere sia la chiave che il valore in un array in Jquery
Sto leggendo RSS feed e spingendo sia il titolo che il link in un array in Jquery.
Quello che ho fatto è
var arr = [];
$.getJSON("displayjson.php",function(data){
$.each(data.news, function(i,news){
var title = news.title;
var link = news.link;
arr.push({title : link});
});
});
E sto leggendo di nuovo quell'array usando
$('#show').click(function(){
$.each(arr, function(index, value){
alert( index +' : '+value);
});
});
Ma mi dà Output come
1:[Object Object]
2:[Object Object]
3:[Object Object]
come questo ...
Come posso ottenere sia tile che link come coppia (titolo come chiave e link come valore)
82
3
Non ci sono chiavi negli array JavaScript. Usate gli oggetti per questo scopo.
In JavaScript, gli oggetti svolgono il ruolo degli array associativi. Siate consapevoli che gli oggetti non hanno un "ordine di ordinamento" definito quando li si itera (vedi sotto).
*Tuttavia, nel tuo caso non mi è molto chiaro perché trasferisci i dati dall'oggetto originale (
data.news
). Perché non passi semplicemente un riferimento a quell'oggetto*?Puoi combinare oggetti e array per ottenere un'iterazione prevedibile e un comportamento chiave/valore:
Questo codice
non sta facendo quello che pensate faccia. Ciò che viene spinto è un nuovo oggetto con un singolo membro chiamato "title" e con
link
come valore ... il valore effettivotitle
non viene usato. Per salvare un oggetto con due campi devi fare qualcosa comeo con i recenti progressi di Javascript si può usare la scorciatoia
La cosa più vicina ad una tupla python sarebbe invece
Una volta che avete i vostri oggetti o array nell'array
arr
potete ottenere i valori sia comevalue.title
evalue.link
o, nel caso della versione spinta dell'array, comevalue[0]
,value[1]
.Non stai spingendo nell'array, stai impostando l'elemento con la chiave
titolo
al valorelink
. Come tale il tuo array dovrebbe essere un oggetto.