【问题标题】:How to print values of a object in JavaScript? [duplicate]如何在 JavaScript 中打印对象的值? [复制]
【发布时间】:2014-01-03 00:57:59
【问题描述】:

我有一个对象

var friends = {
    bill: {
       firstName: "A",
       lastName: "C",
       number: "999",
    },
};

如何使用for...loop 打印对象friends 的值?

【问题讨论】:

  • friends.bill.firstName 等?
  • 是的,安迪,我想打印数值
  • @hridaynehu,您的问题需要更具体地说明您想做什么。是否要循环遍历 friends 中的对象?要将它们的属性/值打印到控制台还是将它们添加到 DOM 元素?
  • 到目前为止你尝试过什么?您知道 for...loop 是什么,在我的第一条评论中,我向您展示了如何访问这些值。你还需要什么?

标签: javascript


【解决方案1】:

如果您只想打印friends.bill 中的成员,您可能需要使用for..in 循环,例如:

for(var p in friends.bill) 
    console.log(p + ": " + friends.bill[p])

这将在控制台中打印:

firstName: A VM579:3
lastName: C VM579:3
number: 999 

【讨论】:

  • 是的。我想使用 for..in 循环。
  • @CaptainJohn 已删除。原来的问题比较模糊。
【解决方案2】:
var friends = {
    bill:
    {
        firstName: "A",
        lastName: "C",        
        number: "999",
    },
    print: function () {
        for (var p in this.bill)
            console.log(p + ' ' + this.bill[p]);
    }
};

这段代码会打印出来,是你需要的吗?

friends.print();

【讨论】:

  • OP 需要一个for...loop
  • 在定义确切需求之前发布 :) 已编辑
【解决方案3】:

我将提出一个建议,可能会使您的编码更容易一些。不要使用对象来包含朋友列表,而是使用数组。数组毕竟是一个列表,而 Javascript 附带了一些非常有用的数组函数,从长远来看可以为您提供帮助。

var friends = [
  {
   name: 'Bill Z',
   firstName: "Bill",
   lastName: "X",
   number: "999",
  },
  {
   name: 'Sam Y',
   firstName: "Sam",
   lastName: "Y",
   number: "999",
  }    
];

要获取朋友列表,您可以使用几个循环;一个循环遍历对象列表,一个循环遍历每个对象的属性:

function listFriends() {
  for (var i = 0, l = friends.length; i < l; i++) {
    for (var p in friends[i]) {
        console.log(p + ': ' + friends[i][p]);
    }
  }
}

或者获取 HTML:

function listFriends() {
  var html = '';
  for (var i = 0, l = friends.length; i < l; i++) {
    html += '<b>' + friends[i].firstName + '</b><br/>';
    for (var p in friends[i]) {
        html += p.toUpperCase() + ': ' + friends[i][p] + '<br/>';
    }
  }
  return html;
}

您可能还想访问朋友列表以查找特定的朋友。在这个例子中,我使用filter

function getFriend(prop, value) {
  return friends.filter(function (obj) {
    return obj[prop] === value;
  });
}

console.log(getFriend('firstName', 'Sam')) // { name="Sam Y", firstName="Sam", lastName="Y"}

Fiddle.

希望您会发现其中的一些有用。

【讨论】:

  • 感谢安迪的回答
猜你喜欢
  • 2020-06-27
  • 2019-01-31
  • 2022-01-22
  • 2010-12-10
  • 2021-03-07
  • 2021-12-26
  • 1970-01-01
  • 2016-01-11
相关资源
最近更新 更多