首页 新闻 会员 周边

JS :push放入JSON格式的数据

0
悬赏园豆:5 [已解决问题] 解决于 2015-07-19 12:19

直接上代码:想了解一下 两段代码的区别,

代码1:

 1  function iterate(obj)
 2             {
 3 
 4                 var arr = [];
 5                 for(var k in obj){
 6                     if(obj.hasOwnProperty(k)){
 7                         var t={k:obj[k]};
 8                         arr.push(t);
 9                       // arr.push(k + ": "+ obj[k]);
10                     }
11                 }
12                 return arr;
13             }
View Code

代码2:

 1     function iterate(obj)
 2             {
 3 
 4                 var arr = [];
 5                 for(var k in obj){
 6                     if(obj.hasOwnProperty(k)){
 7 //                        var t={k:obj[k]};
 8 //                        arr.push(t);
 9                        arr.push(k + ": "+ obj[k]);
10                     }
11                 }
12                 return arr;
13 
14             }
View Code

调用代码:

1  var C = function() {this.foo = 'bar'; this.baz = 'bim';};
2             C.prototype.bop = 'bip';
3             console.debug(iterate(new C()));
View Code

函数的目的是:遍历不是原生属性的属性,这两段代码,注释的地方,就是疑惑的地方,

JS数组中,push可以将item放入到数组,“k + ": "+ obj[k]” 和“ var t={k:obj[k]}”,区别在什么,“k + ": "+ obj[k]”是一个键值对的形式,可以说是JSON的格式,运行后结果显示为:

 

A:“k + ": "+ obj[k]”结果显示:

 

B: “ var t={k:obj[k]}”结果显示:

  请教各位 push方法该如何理解???

天空的天的主页 天空的天 | 初学一级 | 园豆:192
提问于:2015-07-19 11:11
< >
分享
最佳答案
0

代码一:是把Object(对象) Push进数组里去。你现在写的是对象,存储到数组中当然是对象。

           如结果B所示 0:Object,1:Object

代码二:是把String(字符串) Push进数组里去。你现在的写法是拼接字符串,存储到数组中当然是字符串。

           如结果A所示

建议先看看JS的基础知识。

收获园豆:5
Vivian软陶公仔 | 菜鸟二级 |园豆:284 | 2015-07-19 12:05

(⊙o⊙)哦  是这个样子,,我一直把“foo:bar” 看成 foo:“bar” 了灰常感谢;

天空的天 | 园豆:192 (初学一级) | 2015-07-19 12:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册