我在学习JS时正在做以下练习:
“创建将obj的所有数值属性乘以2的函数multiplyNumeric(obj)
”。
解决方案是:
function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] *= 2;
}
}
}
multiplyNumeric
不需要返回任何内容,它应该就地修改对象。
但是,如果我想提醒它怎么办?我尝试了不同的解决方案,但我做错了。.是否有原因导致它不警报或我做错了? (此处的运动参考:https://javascript.info/object)
我尝试过:
let obj = {
first: 100,
second: 200,
third: "Hello"
};
function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] *= 2;
}
}
}
alert(obj);
在这种情况下,它会发出警报:[object Object]
我也尝试了alert(obj.first);
,但它警告100。
我试图将alert(obj);
放在花括号内,但它什么也没做。
请耐心,我只是一个初学者...
答案 0 :(得分:1)
考虑使用console.log()
,因为它将很好地显示对象。但是,如果确定要使用alert()
,则应该知道alert()
仅接受字符串。因此,尝试alert(JSON.stringify(obj))
答案 1 :(得分:1)
分别警告obj中的每个键:
function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] *= 2;
alert(obj[key]);
}
}
}
如果要在所有乘法结束后一起提醒它,请
function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] *= 2;
}
}
alert(JSON.stringify(obj));
}
答案 2 :(得分:1)
使用console.log() 让obj = { 第一:100, 秒:200 第三名:“你好” };
function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] *= 2;
}
}
}
Console.log(obj);
答案 3 :(得分:0)
我在问题中没有看到任何alert()
。既然,我没有什么好评论的话,我正在编写有效的代码。
function multiplyNumeric(obj) {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] *= 2;
}
}
}
var obj = {'number' : 2};
multiplyNumeric(obj);
alert(obj['number']);