直接上代码:想了解一下 两段代码的区别,
代码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 }
代码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 }
调用代码:
1 var C = function() {this.foo = 'bar'; this.baz = 'bim';}; 2 C.prototype.bop = 'bip'; 3 console.debug(iterate(new C()));
函数的目的是:遍历不是原生属性的属性,这两段代码,注释的地方,就是疑惑的地方,
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方法该如何理解???
代码一:是把Object(对象) Push进数组里去。你现在写的是对象,存储到数组中当然是对象。
如结果B所示 0:Object,1:Object
代码二:是把String(字符串) Push进数组里去。你现在的写法是拼接字符串,存储到数组中当然是字符串。
如结果A所示
建议先看看JS的基础知识。
(⊙o⊙)哦 是这个样子,,我一直把“foo:bar” 看成 foo:“bar” 了灰常感谢;