首页 > 解决方案 > 如何将对象推入数组?在角 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

标签: arraysangularangular-formsarray-spliceformgroups

解决方案


问题不是很清楚,但是我知道您正在操作表单数据,表单数据的值返回一个对象,而不是一个数组。JavaScript 中的对象表示为键值对(或属性值)对。

例子 :

var object = {
  name : "Jhon", 
  grade : 12,
  gpa : 8.12
}

它只是键值对的集合,push()、concat() 和其他方法仅支持数组而不支持对象。您可以通过创建一个新的键/属性并将值分配给它来实现您想要的任何东西。

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 是一个 Array 而不是 JS 对象。

感谢A2A


推荐阅读