首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript。它会连续打印4次

Javascript。它会连续打印4次
EN

Stack Overflow用户
提问于 2015-05-08 00:53:46
回答 3查看 51关注 0票数 0

它会持续打印4次。

代码:

代码语言:javascript
复制
var friends = {};
 friends.bill = {
  firstName: "Bill",
  lastName: "Gates",
  number: "(206) 555-5555",
  address: ['One Microsoft Way','Redmond','WA','98052']
};
friends.steve = {
  firstName: "Steve",
  lastName: "Jobs",
  number: "(408) 555-5555",
  address: ['1 Infinite Loop','Cupertino','CA','95014']
};

var list = function(obj) {
  for(var prop in obj) {
    console.log(obj);
  }
};
list(friends.bill);

我希望结果是这样的:

代码语言:javascript
复制
{ firstName: 'Bill',
  lastName: 'Gates',
  number: '(206) 555-5555',
  address: [ 'One Microsoft Way', 'Redmond', 'WA', '98052' ] }

代码语言:javascript
复制
Bill
Gates
(206) 555-5555
[ 'One Microsoft Way', 'Redmond', 'WA', '98052' ]

而不是

代码语言:javascript
复制
      { firstName: 'Bill',
  lastName: 'Gates',
  number: '(206) 555-5555',
  address: [ 'One Microsoft Way', 'Redmond', 'WA', '98052' ] }
{ firstName: 'Bill',
  lastName: 'Gates',
  number: '(206) 555-5555',
  address: [ 'One Microsoft Way', 'Redmond', 'WA', '98052' ] }
{ firstName: 'Bill',
  lastName: 'Gates',
  number: '(206) 555-5555',
  address: [ 'One Microsoft Way', 'Redmond', 'WA', '98052' ] }
{ firstName: 'Bill',
  lastName: 'Gates',
  number: '(206) 555-5555',
  address: [ 'One Microsoft Way', 'Redmond', 'WA', '98052' ] }

我该怎么做?

EN

回答 3

Stack Overflow用户

发布于 2015-05-08 00:58:21

那么,您将遍历对象的属性,并为每个属性打印对象。您有四个属性(firstNamelastNamenumberaddress),因此该对象被打印了四次。

如果你不想这样做,那就不要循环。替换

代码语言:javascript
复制
for(var prop in obj) {
    console.log(obj);
}

使用

代码语言:javascript
复制
console.log(obj);
票数 4
EN

Stack Overflow用户

发布于 2015-05-08 01:27:41

前面的两个答案都建议在friends.bill上简单地使用console.log。这很接近,但如果您尝试一下,我不确定它是否完全符合您的需要:因为address是一个嵌套数组,所以它将输出Array[4]作为它的值,而不是打印它的内部值。

要实现我相信您想要的效果(如果我理解正确的话),最理想的方法是使用JSON.stringify输出JavaScript对象的字符串表示形式

代码语言:javascript
复制
console.log(JSON.stringify(friends.bill));

这将首先将您的对象转换为字符串表示形式,并将所有字段名称和值作为字符串,然后将转换后的字符串写入控制台。

票数 1
EN

Stack Overflow用户

发布于 2015-05-08 01:09:19

代码语言:javascript
复制
    var friends = {};
 friends.bill = {
  firstName: "Bill",
  lastName: "Gates",
  number: "(206) 555-5555",
  address: ['One Microsoft Way','Redmond','WA','98052']
};

friends.bill是一个带有firstName, lastName, number, address的对象。如果你想要下面的结果。

代码语言:javascript
复制
    { firstName: 'Bill',
  lastName: 'Gates',
  number: '(206) 555-5555',
  address: [ 'One Microsoft Way', 'Redmond', 'WA', '98052' ] }

您可以直接使用console.log(friends.bill)来获得想要的结果。

您所做的是迭代对象,因此循环将遍历属性,friends.bill具有四个属性(firstName、lastName、number、address),因此循环将运行四次打印friends.bill对象。

代码语言:javascript
复制
for(var prop in friends.bill) {
    console.log(prop); 
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30107296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档