jquery - Jquery中如何将键和值同时推送到数组中

标签 jquery arrays key-value

我正在阅读 RSS 提要 并将标题和链接插入 Jquery 中的数组。

我做的是

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

我正在使用

再次读取该数组
$('#show').click(function(){
                $.each(arr, function(index, value){
                    alert( index +' : '+value);
                });
            });

但它给我输出作为

1:[Object Object]
2:[Object Object]
3:[Object Object]

像这样...

我如何获得成对的 tilelink(title as key and link as value)

最佳答案

JavaScript 数组中没有键。为此目的使用对象。

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

在 JavaScript 中,对象扮演着关联数组的角色。请注意,对象在迭代时没有定义的“排序顺序”(见下文)。

但是,在您的情况下,我并不清楚为什么要从原始对象 (data.news) 传输数据。为什么不简单地传递对那个对象的引用?


您可以组合对象和数组来实现可预测的迭代键/值行为:

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

关于jquery - Jquery中如何将键和值同时推送到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4825899/

相关文章:

jquery - 带有表格和可调整大小列的可调整大小面板

javascript - 使用状态栏上没有链接的平滑滚动

php - 将字符串添加到 JSON 数组中的一行

python - 如何打印字典中所选键值的正确值? (Python)

grails - 在 Grails 选择列表上设置选项键和值?

jQuery 选择器特异性

javascript - fancybox-1.3.4 在 iE8 中不工作

java - 标记 "]"出现语法错误,此标记后应有 VariableDeclaratorld

python - 如何获得更宽的 numpy 数组打印输出?

indexing - 使用键值数据库作为具有持久索引的集合