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

use*_*605 5 javascript arrays push

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

var sections = [{ name: 'apple', count: 20 },
                 { name: 'banana', count: 80 },
                 { name: 'oranges', count: 10 }]
Run Code Online (Sandbox Code Playgroud)

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

sections.push({ name: 'mango', count: '32' });
Run Code Online (Sandbox Code Playgroud)

这将把新数组添加到部分.

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

var country = [{ country: 'usa', count: 5 },
               { country: 'brazil', count: 27 }]
Run Code Online (Sandbox Code Playgroud)

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

var sections = [{ name: 'apple', count: 20 },
                { name: 'banana', count: 80 },
                { name: 'oranges', count: 10,
                  country: [{ country: 'usa', count: 5 },
                            { country: 'brazil', count: 27 }]
                }]
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?我试过了push,splice但根本无法理解.

我也试过了[3] .push.apply(country)..以及我不记得的许多其他事情.我收到错误或者没有像我想的那样推送阵列.

Chr*_*tos 3

你可以尝试这样的事情:

sections[2].country =  country;
Run Code Online (Sandbox Code Playgroud)

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

为什么推送不起作用?

push 是一种数组方法,使您能够将元素推送到数组末尾。如果您尝试使用push onsections[2]将不起作用,因为sections[2]它不是数组。这同样适用于splice,它是一个数组方法。