gpt4 book ai didi

javascript - 编写一个函数,传递一个对象并返回该对象属性的数组

转载 作者:行者123 更新时间:2023-11-28 20:20:51 25 4
gpt4 key购买 nike

我的作业是这样的:编写一个“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;
}

我很确定我的函数有很多问题。你能帮我吗?谢谢!

最佳答案

这是解决方案:

function keys(obj) {
var hasOwnProperty = Object.prototype.hasOwnProperty;

var properties = [];

for (var property in obj)
if (hasOwnProperty.call(obj, property)
&& typeof obj[property] !== "function")
properties.push(property);

return properties;
}

上面的代码逐行执行以下操作:

  1. 创建一个空数组properties来保存obj的所有属性的名称。
  2. 对于 obj 的每个属性 property 执行以下操作:
    1. 如果属性 property 属于 obj 并且
    2. 如果 obj[property] 不是函数,则:
      1. 将属性 property 添加到 properties 数组中。
  3. 返回properties数组。

查看演示:http://jsfiddle.net/qVgVn/

关于javascript - 编写一个函数,传递一个对象并返回该对象属性的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18347291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com