无法将项目添加到数组
2020-02-21
591
如何向数组添加新项目?我尝试添加一个项目,但它返回错误。请参阅下面的屏幕截图和我的代码。
JavaScript 代码
var roles = [{id: 8, display_name: "test", description: "test", created_at: "2020-02-20 11:34:22", updated_at: "2020-02-20 11:34:22"}
8: {id: 9, display_name: "ASDASD", description: "ADASD", created_at: "2020-02-20 11:39:08", updated_at: "2020-02-20 11:39:08"}
9: {id: 10, display_name: "Test1", description: "test1", created_at: "2020-02-20 11:44:01", updated_at: "2020-02-20 11:44:01"}
10: {id: 11, display_name: "Test2", description: "test2", created_at: "2020-02-21 04:18:49", updated_at: "2020-02-21 04:18:49"}
11: {id: 12, display_name: "Test3", description: "test3", created_at: "2020-02-21 06:56:52", updated_at: "2020-02-21 06:56:52"}
12: {id: 13, display_name: "Test4", description: "test4", created_at: "2020-02-21 07:00:32", updated_at: "2020-02-21 07:00:32"}];
this.roles.id = 12;
this.roles.display_name = 'Mod';
this.roles.description = 'mod';
this.roles.created_at = '2020-02-21 07:12:50';
this.roles.updated_at = '2020-02-21 07:12:50';
错误
TypeError: Cannot set property 'id' of undefined
我想要的
:
从上面的屏幕截图向数据添加项目。
注意
我正在使用 vueJS,并且已在
data{} 对象内设置了
roles
数据。
3个回答
看起来
this.roles
可能是您正在记录的项目数组,对吗?
因此,通过设置
this.roles.id = 12;
,您尝试设置数组的
id
属性,而不是向具有这些属性的数组添加新项目。
试试这个
var newRole = {
id: 12,
display_name: 'Mod',
description: 'mod',
created_at: '2020-02-21 07:12:50',
updated_at: '2020-02-21 07:12:50'
};
this.roles.push(newRole);
这是我最好的猜测。不过,您确实应该上传有关该问题的更多信息:
- 您在该屏幕截图中记录了什么?
- 您当前的方法有什么不起作用?
normsbee
2020-02-21
这是一个 json 元素数组。您需要先创建一个元素,然后将其推送到角色数组中,如下所示。
let newElement = {id:12, display_name :'Mod', description : 'mod', created_at:'2020-02-21 07:12:50', updated_at:'2020-02-21 07:12:50'}
this.roles.push(newElement)
Ali Hayder
2020-02-21
这里有一个解决方案,
我已经创建了您的示例角色对象数组,
创建了一个要添加的新对象,
然后将新对象添加到数组中。
let roles = [
{
"id" : 1,
"display_name" : "One",
"description" : "One desc",
"created_at" : "2020-02-21 01:01:01",
"updated_at" : "2020-02-21 01:01:01"
},
{
"id" : 2,
"display_name" : "Two",
"description" : "Two desc",
"created_at" : "2020-02-21 01:01:01",
"updated_at" : "2020-02-21 01:01:01"
}
];
let newRole = {};
newRole.id = 3;
newRole.display_name = "Three";
newRole.description = "Three desc";
newRole.created_at = "2020-02-21 01:01:01";
newRole.updated_at = "2020-02-21 01:01:01";
roles.push(newRole);
您正在直接尝试将一个对象添加到数组中,
如果您指定索引,您也可以这样做
Dev1ce
2020-02-21