的JavaScript。它保持打印4次

时间:2015-05-07 16:53:46

标签: javascript

它会继续打印4次。

代码:

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);

我想要一个结果:

{ firstName: 'Bill',
  lastName: 'Gates',
  number: '(206) 555-5555',
  address: [ 'One Microsoft Way', 'Redmond', 'WA', '98052' ] }

不是

Bill
Gates
(206) 555-5555
[ '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' ] }
{ firstName: 'Bill',
  lastName: 'Gates',
  number: '(206) 555-5555',
  address: [ 'One Microsoft Way', 'Redmond', 'WA', '98052' ] }

我该怎么做?

3 个答案:

答案 0 :(得分:4)

好吧,您正在迭代对象的属性并为每个属性打印对象。您有四个属性(firstNamelastNamenumberaddress),因此对象会被打印四次。

如果你不想这样做,那么就不要循环。取代

for(var prop in obj) {
    console.log(obj);
}

console.log(obj);

答案 1 :(得分:1)

以前的答案都建议只在terminfo上使用console.log。这很接近,但如果您尝试一下,我不确定它是否完全符合您的要求:由于friends.bill是一个嵌套数组,它将打印出address作为其价值,而不是打印其内部价值。

实现我认为你想要的东西的理想方式是(如果我正确理解)是打印JavaScript对象的字符串表示,就是使用Array[4]

JSON.stringify

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

答案 2 :(得分:0)

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

friends.billfirstName, lastName, number, address的对象。如果您想要以下结果。

    { 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)所以循环将运行四次打印{{ 1}}对象。

friends.bill