鱼C论坛

 找回密码
 立即注册
查看: 5723|回复: 8

[已解决]console.log()里的内容看得见,inenrHTML打印出来都成了[Object,Object]

[复制链接]
发表于 2018-5-5 09:38:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 华丽转身123 于 2018-5-5 10:41 编辑

console.log()里的内容
(10) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
0
:
{学号: 2, 总成绩: 287}
1
:
{学号: 1, 总成绩: 285}
2
:
{学号: 4, 总成绩: 268}
3
:
{学号: 5, 总成绩: 274.5}
4
:
{学号: 6, 总成绩: 265}
5
:
{学号: 7, 总成绩: 284}
6
:
{学号: 8, 总成绩: 248}
7
:
{学号: 3, 总成绩: 230}
8
:
{学号: 10, 总成绩: 258}
9
:
{学号: 9, 总成绩: 185}
length
:
10
__proto__
:
Array(0)

innerHTML打印出来都成
[object Object]

[object Object]

[object Object]

[object Object]

[object Object]

[object Object]

[object Object]

[object Object]

[object Object

**********************************************
我要怎样才能把console.log的内容正常输出呢
最佳答案
2018-5-5 11:21:57


修改:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>学生成绩</title>
    <style type="text/css">
        div {
            width: 200px;
            width: 500px;
            float: left;
        }

    </style>

</head>
<body>
<div id="output">学员的总成绩是:</div>
<div id="ssput">学员的总成绩排名是:</div>
<script>
    var out = document.getElementById("output");
    var oss = document.getElementById("ssput");
    var stu1 = [];
    var ss = [];
    var tt = null;
    var stu = [{学号: 1, 语文: 105, 数学: 62, 英语: 118},
        {学号: 2, 语文: 89, 数学: 78, 英语: 120},
        {学号: 3, 语文: 86, 数学: 64, 英语: 80},
        {学号: 4, 语文: 78, 数学: 99, 英语: 91},
        {学号: 5, 语文: 107.5, 数学: 97, 英语: 70},
        {学号: 6, 语文: 112, 数学: 61, 英语: 92},
        {学号: 7, 语文: 101, 数学: 79, 英语: 104},
        {学号: 8, 语文: 71, 数学: 72, 英语: 105},
        {学号: 9, 语文: 56, 数学: 68, 英语: 61},
        {学号: 10, 语文: 98, 数学: 83, 英语: 77}];

    //    成绩求和
    stu.map(function (item) {
        stu1.push('{' + '学号:' + item.学号 + ',' + '总成绩:' + eval(item.语文 + item.数学 + item.英语) + '}');
    });

    //    左边"学好:x,总成绩:x"的创建
    function strToJson(str) {
        var json = eval('(' + str + ')');
        return json;
    }

    //console.log(typeof(ss[i]));
    for (var i = 0; i < ss.length - 1; i++) {

//                                console.log(typeof(status[i]))
        if (ss[i].总成绩 < ss[i + 1].总成绩) {
            tt = ss[i];
            ss[i] = ss[i + 1];
            ss[i + 1] = tt;
//
        };
    };

    //    遍历将学号和总成绩录入到ss数组
    for (var i = 0; i < stu1.length; i++) {
        ss.push(strToJson(stu1[i]));
    }


    //    输出stu1中的对象,左边所示
    for (var i = 0; i < stu1.length; i++) {
        out.innerHTML += '<br>' + stu1[i] + '<br>';

    } 


    //    ss此时为一个对象,无法直接输出,要转换为string
    //利用原生的JSON.stringify()
    for (var i = 0; i < ss.length; i++) {
        oss.innerHTML += '<br>' + JSON.stringify(ss[i]) + '<br>';
    }

</script>
</body>
</html>
Snip20180505_41.png


问题:
object对象无法直接输出到页面,需要进行处理。


stu1有处理,而ss没有:
Snip20180505_39.png
Snip20180505_40.png


找到问题,答案就是怎么将object转换为string——》原生:JSON.stringify()

QQ截图20180505093233.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-5 10:21:20 | 显示全部楼层
这个是对象,inenrHTML无法直接输出阿。

看一下你的标签代码,用最简单的DOM或者jqery都可以。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-5 10:25:16 | 显示全部楼层
不二如是 发表于 2018-5-5 10:21
这个是对象,inenrHTML无法直接输出阿。

看一下你的标签代码,用最简单的DOM或者jqery都可以。

装作没看到拼写错误
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-5 10:41:49 | 显示全部楼层
elang696 发表于 2018-5-5 10:25
装作没看到拼写错误

谢谢提醒我改回来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-5 10:44:56 | 显示全部楼层
本帖最后由 华丽转身123 于 2018-5-5 10:53 编辑
不二如是 发表于 2018-5-5 10:21
这个是对象,inenrHTML无法直接输出阿。

看一下你的标签代码,用最简单的DOM或者jqery都可以。


DOM我用的是div标签换成p标签也不行,都不行啊jquery我还不熟练不会用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-5 10:53:11 | 显示全部楼层
华丽转身123 发表于 2018-5-5 10:44
DOM我用的是div标签换成p标签也不行,都不行啊jqery我还不熟练不会用

把你的全部代码,发上来~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-5 10:55:53 | 显示全部楼层
本帖最后由 华丽转身123 于 2018-5-5 10:57 编辑
不二如是 发表于 2018-5-5 10:53
把你的全部代码,发上来~

<!DOCTYPE html>
<html>
        <head>
                <meta charset="utf-8">
                <title>学生成绩</title>
                <style type="text/css">
                        div{
                                width: 200px;
                                width: 500px;
                                float: left;
                        }
                
                </style>
                
        </head>
        <body>
                <div id="output">学员的总成绩是:</div>
                <div id="ssput">学员的总成绩排名是:</div>
                <script>
                var out=document.getElementById("output");
                var oss=document.getElementById("ssput");
                var stu1 =[];
                var ss=[];
                var tt=null;
                                var stu=[{学号:1,语文:105,数学:62,英语:118},
                                                 {学号:2,语文:89,数学:78,英语:120},
                                                 {学号:3,语文:86,数学:64,英语:80},
                                                 {学号:4,语文:78,数学:99,英语:91},
                                                 {学号:5,语文:107.5,数学:97,英语:70},
                                                 {学号:6,语文:112,数学:61,英语:92},
                                                {学号:7,语文:101,数学:79,英语:104},
                                                {学号:8,语文:71,数学:72,英语:105},
                                                {学号:9,语文:56,数学:68,英语:61},
                                                {学号:10,语文:98,数学:83,英语:77}]
                        stu.map(function(item){
                                
                                 stu1.push('{'+'学号:'+item.学号+','+'总成绩:'+eval(item.语文+item.数学+item.英语)+'}');
                        });
                        function strToJson(str){   
                                var json = eval('(' + str + ')');   
                                return json;   
                                }   
                        for(var i=0;i<stu1.length;i++){
                                ss.push(strToJson(stu1[i]));
                                        };
//                                console.log(typeof(ss[i]));
                        for(var i=0;i<ss.length-1;i++){
                        
//                                console.log(typeof(status[i]))
                                if(ss[i].总成绩<ss[i+1].总成绩){
                                        tt = ss[i];
                                        ss[i]=ss[i+1];
                                        ss[i+1]=tt;
//                                
                                };
                        };
                                for(var i=0;i<stu1.length;i++){
                                        out.innerHTML+='<br>'+stu1[i]+'<br>';
                                        
                                };
                                console.log(ss);
                                for(var i=0;i<ss.length;i++){
                                        oss.innerHTML+='<br>'+ss[i]+'<br>';
                                };
                
                </script>
        </body>
</html>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-5 11:21:57 | 显示全部楼层    本楼为最佳答案   


修改:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>学生成绩</title>
    <style type="text/css">
        div {
            width: 200px;
            width: 500px;
            float: left;
        }

    </style>

</head>
<body>
<div id="output">学员的总成绩是:</div>
<div id="ssput">学员的总成绩排名是:</div>
<script>
    var out = document.getElementById("output");
    var oss = document.getElementById("ssput");
    var stu1 = [];
    var ss = [];
    var tt = null;
    var stu = [{学号: 1, 语文: 105, 数学: 62, 英语: 118},
        {学号: 2, 语文: 89, 数学: 78, 英语: 120},
        {学号: 3, 语文: 86, 数学: 64, 英语: 80},
        {学号: 4, 语文: 78, 数学: 99, 英语: 91},
        {学号: 5, 语文: 107.5, 数学: 97, 英语: 70},
        {学号: 6, 语文: 112, 数学: 61, 英语: 92},
        {学号: 7, 语文: 101, 数学: 79, 英语: 104},
        {学号: 8, 语文: 71, 数学: 72, 英语: 105},
        {学号: 9, 语文: 56, 数学: 68, 英语: 61},
        {学号: 10, 语文: 98, 数学: 83, 英语: 77}];

    //    成绩求和
    stu.map(function (item) {
        stu1.push('{' + '学号:' + item.学号 + ',' + '总成绩:' + eval(item.语文 + item.数学 + item.英语) + '}');
    });

    //    左边"学好:x,总成绩:x"的创建
    function strToJson(str) {
        var json = eval('(' + str + ')');
        return json;
    }

    //console.log(typeof(ss[i]));
    for (var i = 0; i < ss.length - 1; i++) {

//                                console.log(typeof(status[i]))
        if (ss[i].总成绩 < ss[i + 1].总成绩) {
            tt = ss[i];
            ss[i] = ss[i + 1];
            ss[i + 1] = tt;
//
        };
    };

    //    遍历将学号和总成绩录入到ss数组
    for (var i = 0; i < stu1.length; i++) {
        ss.push(strToJson(stu1[i]));
    }


    //    输出stu1中的对象,左边所示
    for (var i = 0; i < stu1.length; i++) {
        out.innerHTML += '<br>' + stu1[i] + '<br>';

    } 


    //    ss此时为一个对象,无法直接输出,要转换为string
    //利用原生的JSON.stringify()
    for (var i = 0; i < ss.length; i++) {
        oss.innerHTML += '<br>' + JSON.stringify(ss[i]) + '<br>';
    }

</script>
</body>
</html>
Snip20180505_41.png


问题:
object对象无法直接输出到页面,需要进行处理。


stu1有处理,而ss没有:
Snip20180505_39.png
Snip20180505_40.png


找到问题,答案就是怎么将object转换为string——》原生:JSON.stringify()

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-5-5 11:41:01 | 显示全部楼层
本帖最后由 华丽转身123 于 2018-5-5 12:10 编辑


看到不二老师做了那么多注释,我很羞愧啊,以后是不是写代码都要写注释才算是一个合格的程序员啊?
还有个问题:
    for (var i = 0; i < ss.length - 1; i++) {

//                                console.log(typeof(status[i]))
        if (ss[i].总成绩 < ss[i + 1].总成绩) {
            tt = ss[i];
            ss[i] = ss[i + 1];
            ss[i + 1] = tt;
//
        };
    };

    //    遍历将学号和总成绩录入到ss数组
    for (var i = 0; i < stu1.length; i++) {
        ss.push(strToJson(stu1[i]));
    }
************************
这代码将 //    遍历将学号和总成绩录入到ss数组 写在下面,程序不是自上而下的吗,运行到  for (var i = 0; i < ss.length - 1; i++) 时,ss还是一个空的数组,为什么没出错?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 13:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表