使用Javascript将数据推送到另一个数组中的数组

时间:2019-01-19 04:15:22

标签: javascript arrays node.js json

我使用具有此数据集的node.js和discord.js为抽奖系统制作了一个数组。 [{"author":"Name","rafflename":"RAFFLE","amount":"10","entries":"[]"}]

当有人尝试输入抽奖券时,我想在entries标签内创建另一个JSON数组。

我面临的问题是我使用raffles[0].entries.push({ 'username': 'example', 'user_id': '1' });

它返回错误:raffles[0].entries.push is not a function

我认为这是因为它正在寻找不存在的数组raffles[0].entries.push。但是我只使用过push命令。因此,我不确定如何解决此问题。

4 个答案:

答案 0 :(得分:1)

将条目[]移至双引号之外,即使用“条目”:[]

您正在尝试推送到字符串而不是数组

答案 1 :(得分:0)

您必须先将条目强制转换为Array。

const raffles = [{"author":"Name","rafflename":"RAFFLE","amount":"10","entries":"[]"}]
// cast entries to Array
raffles[0].entries = JSON.parse(raffles[0].entries)
// now you can push them
raffles[0].entries.push('test')
console.log(raffles)

答案 2 :(得分:0)

它不起作用,因为对象内部的属性周围带有“”。您可以通过删除“”或执行以下操作来解决此问题:

raffles[0]['entries'].push(//your code here);


当对象的属性是字符串时(即,当它们周围带有引号时),您必须使用“点符号”来访问该属性。

例如:

var object = {"property":"five"};
console.log(object["property"]); //prints 'five'

console.log(object.property); //throws an error

答案 3 :(得分:0)

根据@Bibberty注释格式化数组并执行操作

raffles=rafale=[{"author":"Name","rafflename":"RAFFLE","amount":10,"entries":[]}]

raffles[0].entries.push({ 'username': 'example', 'user_id': 1 });

console.log(raffles)