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-知道这一点也很有用。除了我在原始问题中提出的问题之外,这是我最终试图设置的。干杯