我想在数组中生成JSON数据以传递给另一个组件。为此,我采用了如下方法。但我想我不是很好。我是新手,正在努力学习。
employeeMoney: any[] = [];
employeeId: any[] = [];
this.employeeMoney.push(event.target.value);
this.employeeId.push(employId);
这就是我如何将从用户获得的数据与输入一起抛出。我正在把数据压入我在同一个函数中创建的数组中。
this.employeeMoney.map(function(item) {
blopp.all.money.push(item);
});
this.employeeId.map(function(item) {
blopp.all.id.push(item);
});
let blopp: any = {
all: [{id: '', money:''}]
};
我的目标是从两个不同的数组列表中收集数据到一个列表中。然后,我想使用在这个列表中收集的数据以我想要的格式生成JSON数据。但是这里我遇到了一个错误。当你在输入中输入数据。在控制台中弹出此错误。
ERROR ReferenceError: Cannot access 'blopp' before initialization
我无法解决这个错误。我正在尝试使用最新的货币和id数据创建这样一个JSON结构。
blopp.map(function(item: any) {
blopp.money.push({
"employee_id" : '',
"amount" : item,
"currency" : 'USD'
})
});
但我有一个问题在这里,我怎么能打印2个不同的数据在相同的数组列表到相同的JSON结构。
假设employeeMoney
和employeeId
总是具有相同的顺序和长度,如果它们以某种方式连接。这是一个可能的解决方案。
const length = employeeId.length;
for (let index = 0; index < length; index++) {
blopp.all.push({id: employeeId[index], money: employeeMoney[index]})
}
但是顺便说一句,我不知道你到底在做什么,但是我有一种不好的感觉。也许你的系统设计有问题?首先你必须修复类型,因为你声明它们是字符串,并在其中放入数据结构。
其次,你不能像在:blopp.all.money.push(item);
上那样直接推入数组属性这是答案,因为blopp是一个对象,它包含了{id: '', money: ''}
类型的对象数组,当你push时,你应该做以下操作:blopp.all.push({id: 1, money: '1000'})