【问题标题】:How to push an array inside another array element as a new property in JavaScript? [duplicate]如何将一个数组推入另一个数组元素中作为 JavaScript 中的新属性? [复制]
【发布时间】: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 个项目?

标签: javascript arrays push


【解决方案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 也是如此,它是一个数组方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 2021-12-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-03
      • 1970-01-01
      相关资源
      最近更新 更多