Saya membaca RSS feed dan mendorong kedua Judul dan Link ke sebuah Hotel yang di Jquery.
Apa yang saya lakukan adalah
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});
});
});
Dan saya membaca bahwa array lagi menggunakan
$('#show').click(function(){
$.each(arr, function(index, value){
alert( index +' : '+value);
});
});
Tapi itu Memberi saya Output sebagai
1:[Object Object]
2:[Object Object]
3:[Object Object]
seperti ini ...
Bagaimana saya bisa mendapatkan kedua genteng dan link sebagai pasangan ( judul sebagai kunci dan link sebagai nilai)
Tidak ada tombol di JavaScript array. Menggunakan benda-benda untuk tujuan itu.
var obj = {};
$.getJSON("displayjson.php",function (data) {
$.each(data.news, function (i, news) {
obj[news.title] = news.link;
});
});
// later:
$.each(obj, function (index, value) {
alert( index + ' : ' + value );
});
Dalam JavaScript, benda-benda yang memenuhi peran array asosiatif. Diketahui bahwa benda-benda tidak memiliki didefinisikan "urutan" ketika iterasi mereka (lihat di bawah).
Namun, Dalam kasus anda itu tidak benar-benar jelas bagi saya mengapa anda mentransfer data dari objek aslinya (data.news
) sama sekali. Mengapa anda tidak hanya lulus referensi untuk yang objek di sekitar?
Anda dapat menggabungkan objek dan array untuk mencapai diprediksi iterasi dan kunci/nilai perilaku:
var arr = [];
$.getJSON("displayjson.php",function (data) {
$.each(data.news, function (i, news) {
arr.push({
title: news.title,
link: news.link
});
});
});
// later:
$.each(arr, function (index, value) {
alert( value.title + ' : ' + value.link );
});
Kode ini
var title = news.title;
var link = news.link;
arr.push({title : link});
tidak melakukan apa yang anda pikir tidak. Apa yang akan didorong adalah objek baru dengan satu anggota yang bernama "judul" dan dengan link
dengan nilai ... sebenarnya title
nilai tidak digunakan.
Untuk menyimpan suatu objek dengan dua bidang yang anda harus melakukan sesuatu seperti
arr.push({title:title, link:link});
atau dengan beberapa Javascript kemajuan anda bisa menggunakan shortcut
arr.push({title, link}); // Note: comma "," and not colon ":"
Hal yang paling dekat dengan python tupel malah akan menjadi
arr.push([title, link]);
Setelah anda memiliki benda-benda atau array dalam arr
array anda bisa mendapatkan nilai-nilai, baik sebagai nilai.judul
dan nilai.link
atau, dalam kasus yang mendorong array versi, sebagai nilai[0]
, nilai[1]
.
Anda mungkin maksud ini:
var unEnumeratedArray = [];
var wtfObject = {
key : 'val',
0 : (undefined = 'Look, I\'m defined'),
'new' : 'keyword',
'{!}' : 'use bracket syntax',
' ': '8 spaces'
};
for(var key in wtfObject){
unEnumeratedArray[key] = wtfObject[key];
}
console.log('HAS KEYS PER VALUE NOW:', unEnumeratedArray, unEnumeratedArray[0],
unEnumeratedArray.key, unEnumeratedArray['new'],
unEnumeratedArray['{!}'], unEnumeratedArray[' ']);
Anda dapat mengatur enumerable untuk sebuah Objek seperti: ({})[0] = 'txt';
dan anda dapat mengatur kunci untuk Array seperti: ([])['myKey'] = 'myVal';
Semoga ini bisa membantu :)