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

Posted

技术标签:

【中文标题】如何将一个数组推入另一个数组元素中作为 JavaScript 中的新属性? [复制]【英文标题】:How to push an array inside another array element as a new property in JavaScript? [duplicate] 【发布时间】:2016-02-10 17:05:09 【问题描述】:

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

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,但根本想不通。

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

【问题讨论】:

sections[2].country = country; 真的吗??!!!!有那么容易吗?我正在尝试世界上所有其他困难的方法??天哪!!!谢谢 “另一个数组”索引位置是否对应sections数组索引位置? 不太清楚你的意思,但我得到的答案都是正确的答案。 @user1828605 是的。 sections 包含 3 个项目。 “另一个数组”是否包含与 section 项目对应的 3 个项目? 【参考方案1】:

push 用于添加到数组,而不是用于向对象添加属性。对于属性,只需指定属性名称即可。

sections[2].country = country;

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

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

别忘了数组索引从0开始,所以第三个元素是[2]

【讨论】:

【参考方案2】:

你可以试试这样的:

sections[2].country =  country;

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

为什么推送不起作用?

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

【讨论】:

以上是关于如何将一个数组推入另一个数组元素中作为 JavaScript 中的新属性? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

即使将元素推入其中,数组元素也未定义[重复]

如何使用扩展运算符将对象数组推入特定元素

将 Var 的值推入数组

Mongoose/Node:将元素推入数组类型的文档字段?

尽管 if (应该充当过滤器),但所有元素都推入数组

如何填充作为另一个文档的数组元素的子文档的字段?