js动态为对象添加属性和方法

js动态为对象添加属性和方法,第1张

简单的补个例子上,希望楼主能把addMethods的第二个参数大致有几种情况写清楚。

我再把我的答案补充完整

//判断类型的方法

var isType = function(object) {

  return Object.prototype.toString.call(object)

    .match(/^\[object\s(.*)\]$/)[1]

}

var addMethods = function(obj, arr){

    if(isType(obj) !== 'Object'){

        return alert('第一个参数必须是对象!')

    }

    //TODO

}

代码贴上来百度不让我提交,说有不适合的内容....

我就贴截图了

运行结果:

核心思路呢,就是从给定的对象数组中,先把所有的score字段拿出来构造一个新的数组,然后对这个数组从大到小排序,然后去重,得到分数的从高到低的一个数组[ 100, 60, 30, 20 ]

然后forEach遍历给定的对象数组,添加排名字段,字段的值,就是当前遍历到的这个对象的score值在前面已经得到的分数数组中的索引号+1

对象合并:

var obj = {a:1, name: 'test'}

var shuxing = {name:"super",sex:"19",work:"IT"}

for(var r in shuxing){

eval("obj."+r+"=shuxing."+r)

}

alert(obj.a)

alert(obj.name)

alert(obj.sex)

alert(obj.work)

当然可以写成函数方式:

function objMerger(obj1, obj2)

{

for(var r in obj2){

eval("obj1."+r+"=obj2."+r)

}

return obj1

}

obj = objMerger(obj, shuxing)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11637428.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存