我们有这个Java脚本对象:
const recordCollection = {
2468: {
albumTitle: '1999',
artist: 'Prince',
tracks: ['1999', 'Little Red Corvette']
},
1245: {
artist: 'Robert Palmer',
tracks: []
},
5439: {
albumTitle: 'ABBA Gold'
}
};
为了能够更新对象的属性,可以使用以下两个函数之一:
unction updateRecords(records, id, prop, value) {
if (value === "") {
delete records[id][prop];
} else if (prop !== "tracks" && value !== "") {
records[id][prop] = value;
} else if (prop === "tracks" && value !== "") {
if (records[id].hasOwnProperty("tracks") === false) {
records[id][prop] = [];
}
records[id][prop].push(value);
}
return records;
}
let result = updateRecords(recordCollection, 2468, "tracks", "");
console.log(result);
或
function updateRecords(records, id, prop, value) {
if (value === ""){
delete records[id][prop];
} else if(prop === "tracks" && value !== ""){
records[id][prop] = records[id][prop] || [];
records[id][prop].push(value);
} else if(prop !== "tracks" && value !== "") {
records[id][prop] = value;
}
return records;
}
let result = updateRecords(recordCollection, 2468, "tracks", "lala");
console.log(result);
在该函数中,使用‘if(Value="")’进行初始判断,以确定值是否为空字符串.在此之后,判断另外两个条件,并使用‘&;&;’运算符一致地验证空字符串条件.
是否有必要重复判断空字符串?是否可以安全地删除‘&;&;Value!==""部分,而不引入错误或更改代码的预期功能?
如果使用和不使用相同,哪种代码会更好?为什么?
请为您的回答(为什么和如何..)提供解释.非常感谢!
我已经try 了两个版本,有双重判断和没有双重判断,但看不出有什么不同.这段代码是来自freecodecamp的一个Java脚本练习的解决方案.我有我已经提到的具体问题,但也欢迎任何其他信息!谢谢!