Javascript 返回对象数组
Javascript return array of objects
function setup() {
var names = [];
var name = {firstname: "", lastname: ""};
name.firstname = "John";
name.lastname = "Doe";
names.push(name);
name.firstname = "Bill";
name.lastname = "Smith";
names.push(name);
return names;
}
var temp = setup();
print temp[0].firstname;
我似乎无法弄清楚如何从函数返回对象数组。知道我哪里出错了吗?
问题是存储在temp
中的结果如下:
[
{
firstname: "Bill",
lastname: "Smith"
},
{
firstname: "Bill",
lastname: "Smith"
}
]
您不能重用 name 来推送"第二个"对象,因为您尚未创建第二个对象,它是同一个对象。 所以name.firstname="Bill"正在更改第一个对象,而不是创建第二个对象。
function setup() {
var names = [];
var name = {};
name.firstname = "John";
name.lastname = "Doe";
names.push(name);
var name2 = {};
name2.firstname = "Bill";
name2.lastname = "Smith";
names.push(name2);
return names;
}
var temp = setup();
alert(temp[0].firstname); // Alerts "John"
你的代码有 2 个问题。
-
要在控制台中绘制,您需要使用
console.log(temp[0].firstname)
代替print
-
您有一个名称对象,并且仅对其进行更新。当对象通过引用传递时,索引 0 和索引 1 处的实例都会更新并具有相同的值。
您需要将代码更新为以下内容
function setup() {
var names = [];
var n1 = {};
n1.firstname = "John";
n1.lastname = "Doe";
names.push(n1);
var n2 = {};
n2.firstname = "Bill";
n2.lastname = "Smith";
names.push(n2);
return names;
}
var temp = setup();
console.log(temp[0].firstname);
相关文章:
- 将数组对象传递到struts2中的操作类
- 如何使用jquery返回php-json数组对象
- 从其名称获取javascript数组对象
- 值未与数组对象绑定
- 如何按数组/对象值的倍数过滤对象数组
- 在表中显示数组对象
- 在数组对象中分组
- 将第二个或多个数组推送到数组对象 AngularJS 中
- 重新排列 JavaScript 数组/对象
- 键上的javascript数组对象过滤器
- handontable:在不更改数据数组/对象的情况下隐藏某些列
- 用于跟踪购物车可用性的Javascript数组/对象/哈希表
- 重建有角度的java脚本数组对象
- 对JSON数组对象进行排序
- 连接与数组对象相关的文本:方式和位置
- 哪些浏览器和版本支持将常见的类数组对象直接传递到fn.apply()
- 如何使用Handlebars循环数组对象和模板
- 是否可以引用JS数组/对象中的另一个元素
- Javascript中的名称索引-数组/对象
- 数组长度不等于数组对象