Cómo introducir tanto la clave como el valor en un Array en Jquery
Estoy leyendo RSS feed y empujando tanto el Título como el Enlace en un Array en Jquery.
Lo que he hecho es
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});
});
});
Y vuelvo a leer ese array usando
$('#show').click(function(){
$.each(arr, function(index, value){
alert( index +' : '+value);
});
});
Pero me da Salida como
1:[Object Object]
2:[Object Object]
3:[Object Object]
como este ...
¿Cómo puedo obtener tanto tile y link como un par ( título como clave y enlace como valor)
82
3
No hay claves en las matrices de JavaScript. Utiliza objetos para ese fin.
En JavaScript, los objetos cumplen el papel de las matrices asociativas. Tenga en cuenta que los objetos no tienen un "orden de clasificación" definido al iterarlas (véase más adelante).
*Sin embargo, en tu caso no me queda claro por qué transfieres los datos del objeto original (
data.news
). ¿Por qué no pasas simplemente una referencia a ese* objeto?Puedes combinar objetos y arrays para conseguir una iteración predecible y un comportamiento clave/valor:
Este código
no está haciendo lo que crees que hace. Lo que se envía es un nuevo objeto con un solo miembro llamado "título" y con
link
como valor... el valor real detitle
no se utiliza. Para guardar un objeto con dos campos tienes que hacer algo comoo con los recientes avances de Javascript puedes usar el atajo
Lo más parecido a una tupla en python sería en cambio
Una vez que tienes tus objetos o arrays en el array
arr
puedes obtener los valores comovalue.title
yvalue.link
o, en el caso de la versión del array empujado, comovalue[0]
,value[1]
.No estás empujando en el array, estás poniendo el elemento con la clave
title
al valorlink
. Como tal, su matriz debe ser un objeto.