如何在JavaScript中打印对象的值?

How to print values of a object in JavaScript?

本问题已经有最佳答案,请猛点这里访问。

我有个东西

1
2
3
4
5
6
7
var friends = {
    bill: {
       firstName:"A",
       lastName:"C",
       number:"999",
    },
};

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


1
2
3
4
5
6
7
8
9
10
11
12
var friends = {
    bill:
    {
        firstName:"A",
        lastName:"C",        
        number:"999",
    },
    print: function () {
        for (var p in this.bill)
            console.log(p + ' ' + this.bill[p]);
    }
};

这个代码会打印出来,你需要吗?

1
friends.print();


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

4

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

1
2
3
4
5
6
7
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导出:

1
2
3
4
5
6
7
8
9
10
function listFriends() {
  var html = '';
  for (var i = 0, l = friends.length; i < l; i++) {
    html += '' + friends[i].firstName + '<br/>';
    for (var p in friends[i]) {
        html += p.toUpperCase() + ': ' + friends[i][p] + '<br/>';
    }
  }
  return html;
}

您可能还希望访问朋友列表以找到一个特别的朋友。在这个例子中,我使用filter

1
2
3
4
5
6
7
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"}

小提琴。

希望你能找到一些有用的。


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

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

在控制台中打印:

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