使用js,比较两个json数组对象,把相等的键值取出存入<div></div>。急求帮助啊!!!

有两个json数组对象var_try_data={"message_list":[{"viewer_list":[],"msg_type":"","story_id":"... 有两个json数组对象
var _try_data = {
"message_list": [
{
"viewer_list": [ ],
"msg_type": " ",
"story_id": "v1_10010_52_1_54a1",

},
{
"viewer_list": [ ],
"msg_type": " ",
"story_id": "v1_10010_52_1_54a7",
},
{
"viewer_list": [ ],
"msg_type": " ",
"story_id": "v1_10010_52_1_54a5",
}
]
};
var try_bc_param = {
"bc_list": [
{
"start_moment": 3,
"story_id": "v1_10010_52_1_54a1",
"caption": "我不知道你是谁1。",
"duration": 4
},
{
"start_moment": 3,
"story_id": "v1_10010_52_1_54a5",
"caption": "我不知道你是谁2。",
"duration": 4
},
{
"start_moment": 0.9,
"story_id": "v1_10010_52_1_54a1",
"caption": "我不知道你是谁3。",
"duration": 4
}
]
};

var _try_messages = _try_data['message_list'];
var dm=try_bc_param["bc_list"];

如果_try_messages中某项的"story_id"与dm中一个或多个对象的"story_id"相等,在dm中,把对应的"caption"值取出,按照"start_moment"值从小到大的先后顺序,依次存入<div></div>中
展开
 我来答
匿名用户
2015-01-29
展开全部
<!DOCTYPE HTML>
<html>
<head>
<meta charset=UTF-8>
<title>recursion</title>
<style type="text/css">
</style>
<script type="text/javascript">
var _try_data = 
{
    "message_list": [
        {
            "viewer_list": [],
            "msg_type": " ",
            "story_id": "v1_10010_52_1_54a1",
        }, 
        {
            "viewer_list": [],
            "msg_type": " ",
            "story_id": "v1_10010_52_1_54a7",
        }, 
        {
            "viewer_list": [],
            "msg_type": " ",
            "story_id": "v1_10010_52_1_54a5",
        }
    ]
};
var try_bc_param = 
{
    "bc_list": [
        {
            "start_moment": 3,
            "story_id": "v1_10010_52_1_54a1",
            "caption": "我不知道你是谁1。",
            "duration": 4
        }, 
        {
            "start_moment": 3,
            "story_id": "v1_10010_52_1_54a5",
            "caption": "我不知道你是谁2。",
            "duration": 4
        }, 
        {
            "start_moment": 0.9,
            "story_id": "v1_10010_52_1_54a1",
            "caption": "我不知道你是谁3。",
            "duration": 4
        }
    ]
};

var filterData = function(a, b) 
{
    var array = [];
    for (var i = 0; i < a.length; i++) 
    {
        var x = a[i]["story_id"];
        for (var j = 0; j < b.length; j++) 
        {
            var bj = b[j];
            if (x == bj["story_id"]) 
            {
                var obj = 
                {
                    "start_moment": bj["start_moment"],
                    "caption": bj["caption"]
                };
                array.push(obj);
            }
        }
    }
    array.sort(function(c, d) 
    {
        var x = parseFloat(c['start_moment'], 10), y = parseFloat(d["start_moment"], 10);
        if (x < y) 
        {
            return -1;
        } 
        else if (x > y) 
        {
            return 1;
        } 
        else 
        {
            return 0;
        }
    });
    return array;
}

var displayDiv = function(array) 
{
    for (var i = 0; i < array.length; i++) 
    {
        var div = document.createElement('div');
        div.innerHTML = array[i]['caption'];
        document.body.appendChild(div);
    }
}

onload = function() 
{
    var _try_messages = _try_data['message_list'];
    var dm = try_bc_param["bc_list"];
    var array = filterData(_try_messages, dm);
    displayDiv(array);
}
</script>
</head>
<body>
</body>
</html>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式