Javascript 将值从循环插入到对象中

Javascript 将值从循环插入到对象中,javascript,Javascript,我正在尝试创建一个脚本,该脚本将在对象中插入一些值 我基本上希望最终得到一系列看起来像这样的对象- myObj.data.person[0].name = 'name 1'; myObj.data.person[1].name = 'name 2'; myObj.data.person[2].name = 'name 3'; 等 这是我的对象,它包含一个对象数组 var addressBook = { data: [ person = { name: '',

我正在尝试创建一个脚本,该脚本将在对象中插入一些值

我基本上希望最终得到一系列看起来像这样的对象-

myObj.data.person[0].name = 'name 1';
myObj.data.person[1].name = 'name 2';
myObj.data.person[2].name = 'name 3';

这是我的对象,它包含一个对象数组

var addressBook = {
  data: [ 
    person = {
      name: '',
      address: ''
    }
  ]
}
以及用于插入重复信息的for循环

for (i=0; i < 10; i++) 
  {
    myObj.data.person[i] = {name: 'Joe Bloggs', address: 'Main Street'};
    console.log(myObj.data.person.name);
  }
(i=0;i<10;i++)的

{
myObj.data.person[i]={姓名:'Joe Bloggs',地址:'Main Street'};
日志(myObj.data.person.name);
}
每当我运行这段代码时,就会出现以下错误-

Uncaught TypeError: Cannot set property 'person' of undefined at <anonymous>:14:24
Uncaught TypeError:无法在14:24设置未定义的属性“person”
所以,问题是我哪里做错了?此外,这是否被认为是创建对象列表的正确方法(例如,人员1、人员2等)

(我最终在考虑如何创建类似Person构造函数的东西,并使用循环创建多个Person对象)


谢谢,

请尝试按以下方式更改对象符号

var addressBook = {
  data: [{
      name: '',
      address: ''
    },
    {
      name: 'Roshan',
      address: ''
    },
    {
      name: 'Roshan1',
      address: ''
    }
  ]
}
试试这个:

myObj.data[i].person = 'John';
myObj.data[i].address = 'NYC';

请将此答案视为的附录

你应该考虑为你的用例编写一个原型/类。 在这种情况下,您可以更好地跟踪数据

也许是这样的:

var AddressBook = {},
    Person = {};

(function() {
    AddressBook.prototype = {
        data: [],
        add: function(person) {
            this.data.push(person);
        }
    };
    Person = function(name, address) {
        this.name = name;
        this.address = address;
    }
    Person.prototype = {
        name,
        address
    };
})();

您需要正确声明您的
myObj
属性,您将对象声明为
addressBook
,但稍后尝试将其作为
myObj
访问?
数据:[person=…]
是胡说八道。如果
data
是一个数组,那么您也不能执行
data.person[…]
操作。您可能只需要
数据:[{name…}]
,并操作
数据[i]
。这是答案的一半…谢谢Isetty和Deceze。这是正确的解决方案。谢谢jayjay-知道这一点也很有用。除了我在原始问题中提出的问题之外,这是我最终试图设置的。干杯