如何将对象推入数组?在 Angular 7
How to push object into an array? in Angular 7
我正在将一个对象推入数组但无法做到?
我是这样做的
this.passData = this.tribeForm.value;
var id = {"tribe_id": 1}
this.passData.push(id)
这是 tribeForm 中的值
我也试过了
var id = {tribe_id: 1}
和
this.passData.splice(0,0, id)
和
this.passData = Array.prototype.slice(id)
和
this.passData.concat(id)
但这一切都以
结束
TypeError: this.passData.push/splice/concat is not a function
问题不是很清楚,但我了解到您正在处理表单数据,表单数据的值 returns 是一个对象,而不是数组。 JavaScript 中的对象表示为 key-value 对(或 attribute-value)对。
示例:
var object = {
name : "Jhon",
grade : 12,
gpa : 8.12
}
它只是 key-value 对的集合,push()、concat() 和其他方法仅支持数组,不支持对象。您只需创建一个新的 key/attribute 并为其赋值即可实现任何您想要的。
this.passData = this.tribeForm.value
this.passData['tribe_id'] = 1
//or, Objects can also contain nested object
this.passData['someKey'] = {'tribe_id' : 1}
您可以创建一个空数组并将对象推送到其中
示例:
var exampleArray = []
exampleArray.push({'tribe_id' : 1})
现在,它可以工作了,因为 exampleArray 是一个数组而不是 JS 对象。
感谢 A2A
首先,你需要了解错误:
TypeError: this.passData.push/splice/concat is not a function
Push/splice/concat
是 Array
的函数,因此控制台对你大喊大叫passData
不是 Array
。
确保您的 passData
是一个数组,您将能够这样做。
我正在将一个对象推入数组但无法做到?
我是这样做的
this.passData = this.tribeForm.value;
var id = {"tribe_id": 1}
this.passData.push(id)
这是 tribeForm 中的值
我也试过了
var id = {tribe_id: 1}
和
this.passData.splice(0,0, id)
和
this.passData = Array.prototype.slice(id)
和
this.passData.concat(id)
但这一切都以
结束TypeError: this.passData.push/splice/concat is not a function
问题不是很清楚,但我了解到您正在处理表单数据,表单数据的值 returns 是一个对象,而不是数组。 JavaScript 中的对象表示为 key-value 对(或 attribute-value)对。
示例:
var object = {
name : "Jhon",
grade : 12,
gpa : 8.12
}
它只是 key-value 对的集合,push()、concat() 和其他方法仅支持数组,不支持对象。您只需创建一个新的 key/attribute 并为其赋值即可实现任何您想要的。
this.passData = this.tribeForm.value
this.passData['tribe_id'] = 1
//or, Objects can also contain nested object
this.passData['someKey'] = {'tribe_id' : 1}
您可以创建一个空数组并将对象推送到其中
示例:
var exampleArray = []
exampleArray.push({'tribe_id' : 1})
现在,它可以工作了,因为 exampleArray 是一个数组而不是 JS 对象。
感谢 A2A
首先,你需要了解错误:
TypeError: this.passData.push/splice/concat is not a function
Push/splice/concat
是 Array
的函数,因此控制台对你大喊大叫passData
不是 Array
。
确保您的 passData
是一个数组,您将能够这样做。