如何将数组作为 JavaScript 中的新 属性 推入另一个数组元素?

How to push an array inside another array element as a new property in JavaScript?

所以, 例如,我有以下数组

var sections = [{ name: 'apple', count: 20 },
                 { name: 'banana', count: 80 },
                 { name: 'oranges', count: 10 }]

现在,如果我想添加更多项目,那么我可以

sections.push({ name: 'mango', count: '32' });

这会将新数组添加到部分。

现在,假设我有另一个数组显示水果的来源和数量。

var country = [{ country: 'usa', count: 5 },
               { country: 'brazil', count: 27 }]

所以,我想将这个新的 country 数组添加到 sections 的第三个元素,并使用一个名为 country 的新属性,如下所示。

var sections = [{ name: 'apple', count: 20 },
                { name: 'banana', count: 80 },
                { name: 'oranges', count: 10,
                  country: [{ country: 'usa', count: 5 },
                            { country: 'brazil', count: 27 }]
                }]

我该怎么做?我尝试了 pushsplice 但根本无法弄清楚。

我还尝试了 sections[3].push.apply(country).. 以及许多其他我不记得了的东西。要么我收到错误,要么只是没有按照我的意愿推送数组。

您可以尝试这样的操作:

sections[2].country =  country;

在这里,写 sections[2] 我们可以查看对 sections 的第三项的引用。然后我们定义一个名为 country 的 属性 并为其分配我们想要的值。

为什么推送不起作用?

push 是一种数组方法,它使您能够将元素压入数组的末尾。如果您尝试在 sections[2] 上使用 push 将不起作用,因为 sections[2] 不是数组。 splice也是一样,它是一个数组方法。

push 用于添加到数组,而不是用于向对象添加属性。对于 属性,只需分配 属性 名称。

sections[2].country = country;

如果 属性 已经存在并且您想添加到它,您可以使用 push 如下:

section[2].country.push({country: 'venezuela', count: 20});

并且不要忘记数组索引从 0 开始,所以第三个元素是 [2]