我试图按年龄对一系列记录进行冒泡,但我得到的只是:
[object Object],[object Object],[object Object]
如何让它显示记录的值?
students = [
{name: "timothy", age: "9"},
{name: "claire", age: "12"},
{name: "michael", age: "20"}
];
for (var i = 0; i < students.length; i++) {
for (var j = i + 1; j < students.length; j++) {
if (Number(students[i].age) > Number(students[j].age)) {
tempValue = students[j].age;
students[j].age = students[i].age;
students[i].age = tempValue;
}
}
}
alert(students);
答案 0 :(得分:10)
默认情况下,JavaScript中的所有对象在转换为字符串时都会变为"[object Object]"
(与alert()
的情况一样)。
您可以尝试:
使用console.log或调试器检查数组(而不是使用alert())
console.log(students);
//Open your browser's developer tools to see the console.
//Try F12, ctrl+shift+J or ctrl+shift+I as shortcuts
使用JSON.stringify
功能序列化对象。
JSON.stringify({a:1});
//yields '{"a":1}'
为对象提供自定义toString方法
var x = {
a : 17,
toString: function(){
return 'I have a ' + this.a;
}
};
alert(x); //gives "I have a 17"
答案 1 :(得分:1)
在支持的浏览器中,您可以提醒或记录JSON字符串表示形式:
alert(JSON.stringify(students));