大家好,我想我有以下两个对象
var obj1 = {one:232,two:3123,three:3232}
var obj2 = {one:323,three:3444,seven:32}
我正在尝试编写一个函数,该函数将返回两个对象中的属性,假设我始终有两个对象作为参数。所以对于我的输出来说,看到它会很棒["one","three"]
.
这是我写的
var extend = function(obj){
var x = Object.keys(arguments[0]);
var y = Object.keys(arguments[1]);
var inter =[];
for(var i = 0; i < x.length; i++){
for(var k = 0; k < y.length;i++){
if(x[i] === y[k]) {
inter.push(y[k]);
}
}
}
return inter;
}
我期望这样做的是创建两个对象的属性数组并检查每一对以查看它们是否相等。如果是的话,我希望它将常见的项目推入一个新的数组中。由于某种原因,它不会运行,因为它似乎无限期地运行。
有人可以帮忙吗?
让自己轻松一点——
Object.keys返回一个数组,可以使用数组过滤器。
var commonproperties= function(o1, o2){
return Object.keys(o1).filter(function(itm){
return itm in o2
});
}
var obj1 = {one:232,two:3123,three:3232},
obj2 = {one:323,three:3444,seven:32};
commonproperties(obj1 ,obj2);
/* returned value: (Array)
['one','three']
*/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)