arrays - 如何将对象推入数组?在角 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
解决方案
问题不是很清楚,但是我知道您正在操作表单数据,表单数据的值返回一个对象,而不是一个数组。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
推荐阅读
- python-3.x - Python unittest:TestCase 类中的模拟函数
- javascript - JavaScript 无法从对象中获取元素
- unit-testing - 创建模拟函数
- symfony - 获得 FosUser 身份验证以持久保存到 Easy Admin 实体(用户日志)
- openshift - Openshift 扩展最佳实践
- python - 鱼眼相机校准opencv
- node.js - Puppeteer:JS 文件仅在放置在节点模块的 puppeteer 目录中时才有效
- ios - 我可以通过拖放从 Mac 接受文件到 iOS 模拟器吗?
- reactjs - 反应中文本的超链接
- postgresql - 为什么休眠不创建表和模式