【发布时间】:2013-08-23 05:26:32
【问题描述】:
我的作业是这样的: 编写一个“keys”函数,传递一个对象并返回对象属性的数组。一定要筛选出对象的方法。键数组只有对象的名称/值对的名称。由于跨浏览器问题(旧浏览器不支持),无法使用 Objectkeys 方法。您的函数应该为所有浏览器提供相同的服务。
我的初始代码如下:
function keys(obj){
var key="";
var i = 0;
var array = [];
for(i = 1; i<arguments.length; i++){
for(key in arguments[i]){
if(obj.hasOwnProperty&&(!_.isArray(obj))){
obj[key]=arguments[i][key];
}
}
}
for(var j = 0; j < obj.length; j++){
for(key in obj[j]){
array[j] = obj[j];
}
}
return array;
}
我很确定我的函数有很多问题。你能帮我吗?谢谢!
【问题讨论】:
-
你注意到这段代码有什么问题?
-
我自己都不认识。但我能感觉到我的代码不是解决方案。
-
我们可以为您提供解决方案,但那是作弊,不是吗?通过解释您尝试过的方法以及原因,帮助我们帮助您。例如,所有这些循环是做什么用的?当你写它们的时候你有什么想法?
-
我想要先将所有参数合并到一个对象中。然后我想把这个对象的每个属性都放入一个数组中。这是解决问题的正确思路吗?
-
@bfavaretto - 我认为基于 Penghan 在这里展示的一些东西,Penghan 确实需要研究和寻找更有效、更好的代码。这看起来像是从各地收集的一堆乱七八糟的东西,而且了解很少。我将 Penghan 指向 MDN 跨浏览器实现进行研究。
标签: javascript