Javascript 返回对象数组

标签 javascript arrays function object return

<分区>

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.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"

关于Javascript 返回对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34886402/

相关文章:

javascript - Kafka.JS 拒绝连接 <<[BrokerPool] 无法连接到种子代理,正在尝试列表中的另一个代理>>

javascript - React.js,列表中的每个 child 都应该有一个唯一的 "key" Prop 。如果 key 已经给出,如何修复

c++ - 除法答案未正确执行

arrays - Powershell中的数组类型-System.Object []与具有特定类型的数组

Kotlin 中的函数参数名称

javascript - jquery比较同一行的数据,如果正确则显示第三行的内容

javascript - 使用 JSTree 上下文菜单捕获新创建的节点

ios - 从 Firebase 读取数据并保存到数组中 (Swift)

javascript - 使用 RegisterStartupScript w/js 文件从 C# 代码后面调用 Javascript 函数

javascript - 无论如何要用 "default function"创建 Javascript 对象? AngularJS