我该如何alert();这个JS函数的结果?

时间:2019-11-24 14:33:21

标签: javascript object

我在学习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);放在花括号内,但它什么也没做。

请耐心,我只是一个初学者...

4 个答案:

答案 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']);