一道关于JSON的问题

一道关于JSON的问题

之前的课程都过期了,也不知道到哪问问题…所以就在这里问了。不好意思。

代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Interview</title>
</head>
<body>

    <script>

        var json = {
            "name":"noc",
            "age":100,
            "colors":['red','yellow','blue'],
            "school":function(){
                console.log("我会被忽略");
            }
        };
        console.log(JSON.stringify(json,function(key,value){
            if(key === 'name'){
                return undefined;
            }
            if(key === '1'){
            // if(json.colors[key] === 'yellow'){

                return undefined;
            }
            return value;
        }));

    </script>
</body>
</html>

输出结果:

{"age":100,"colors":["red",null,"blue"]}


关于if(key === '1') 这一段代码没看懂。

1. 首先key在遍历json对象中属性值的时候,经历了,key='name'、key='age'、然后key遇到'colors'的时候发现它是个数组。所以key就成了0,1,2这样的索引值,把数组里的值遍历出来,是这样的过程吗?

2. key在等于colors的时候,难道key不应该以colors[0],colors[1]这样的形式存在吗?


不是课程里的内容,还是辛苦老师解答一下。

非常感谢。


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好,第一条理解的正确,第二条理解的不对。当遍历['red','yellow','blue']时,key就是数组成员的下标(索引值),即1,2,3 。而value就是数组成员,即'red','yellow','blue'。

http://img1.sycdn.imooc.com//climg/5e3800cb09aed50807280244.jpg

另外,本站的教学服务只包含站内视频内容问题解答、站内习题问题解答、站内作业问题解答、站内测试题问题解答以及站内产品使用问题解答。同学的问题内容与本站视频、习题以及作业等内容无关联,故不包含在本站的教学服务内。

不过老师看你挺爱学习的,所以破例为你解答一次。还是建议同学合理安排时间,把学习的重点放在课程内容本身,打好基础。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

  • 夜魇丶 提问者 #1
    好的,感谢老师解答!(因为是边看课程边找相关书籍看的,所以书里内容遇到问题,图方便就在这里问了。以后会注意,再次感谢老师热心解答。)
    2020-02-03 19:22:04
卡布琦诺 2020-02-02 14:57:24

同学是在哪里看到的这段代码或者是在什么代码环境下产生的这段代码?使用这段代码想要实现什么功能或者是达到什么效果呢?建议详细描述清楚。

祝学习愉快!

  • 提问者 夜魇丶 #1
    这段代码不是课程里的,而是在别的地方看到的。 这段代码实现的功能和效果都清楚,就是关于代码加粗部分不太能理解。我的理解就是1.的那段话,想问的就是这样理解对不对
    2020-02-03 18:35:13
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师