我想使用其键比较2个对象。如果对象具有相同的键,请检查其值。如果相同,则在新对象中保存该对的一个实例,否则在新对象中保存值为1的对。 这是我的尝试:
var sameKey = false;
function hasSameProps( obj1, obj2 ) {
for (var x in obj1){
if (obj2.hasOwnProperty(x)){ // check if the objects have same key
samekey = true;
}
if (sameKey){
}
}
}
var obj1 = {'a':0,'s':0};
var obj2 = {'a':0,'s':1};
hasSameProps( obj1, obj2 ); // should return new Object { 'a':0,'s':1};
答案 0 :(得分:0)
您可以在if (obj2.hasOwnProperty(x))
内添加逻辑,例如:
if (obj2.hasOwnProperty(x)) {
newObj[x] = obj1[x] > obj2[x] ? obj1[x] : obj2[x];
}
var sameKey = false;
function hasSameProps(obj1, obj2) {
var newObj = {}, samekey;
for (var x in obj1) {
if (obj2.hasOwnProperty(x)) {
newObj[x] = obj1[x] > obj2[x] ? obj1[x] : obj2[x];
}
}
return newObj;
}
var obj1 = {
'a': 0,
's': 0
};
var obj2 = {
'a': 0,
's': 1
};
console.log(hasSameProps(obj1, obj2));
答案 1 :(得分:0)
function hasSameProps( obj1, obj2 ) {
var returnValue = {};
for (var x in obj1) {
returnValue[x] = obj1[x];
if( obj2.hasOwnProperty(x)){
if(obj2[x] == 1) {
returnValue[x] = obj2[x];
}
}
}
return returnValue;
}
var obj1={'a':0,'s':0};
var obj2={'a':0,'s':1};
var obj3 = hasSameProps( obj1, obj2 );
console.log(obj3);
答案 2 :(得分:0)
因此:键和值都相同,放入新对象;键相同,但不是值,然后放入值1的新对象?
git rev-parse --show-toplevel