首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将对象推入数组时,新对象显示为[[ object],[ object ],[object]]而不是[object,object,object]

将对象推入数组时,新对象显示为[[ object],[ object ],[object]]而不是[object,object,object]
EN

Stack Overflow用户
提问于 2021-01-21 00:56:58
回答 3查看 46关注 0票数 0

这是我的函数:

代码语言:javascript
复制
addToCart(id) {
  var productToAdd = this.items.filter(function (item) {
    return item.id === id;
  })
  console.log(typeof(productToAdd));
  this.shoppingCart.push(productToAdd);
}

Typeof函数指示数据类型为'object‘。但是,结果购物车对象看起来就像这样,这意味着数据对象确实是对象。

代码语言:javascript
复制
[
  [
    {
      "id": 2,
      "category": "Snack",
      "name": "Slanty",
      "price": "50",
      "image": "https://www.beautifulworld.com/wp-content/uploads/2016/09/K2-Mountain.jpg"
    }
  ],
  [
    {
      "id": 6,
      "category": "Snack",
      "name": "Slanty",
      "price": "50",
      "image": "https://www.beautifulworld.com/wp-content/uploads/2016/09/K2-Mountain.jpg"
    }
  ]
]

缓解这种情况的最好方法是什么?我需要将我的对象转换为[{},{},{}]格式,而不是[[{}],[{}],[{}]]格式。我知道这不是一个好问题,但是我还是个javascript新手。

EN

回答 3

Stack Overflow用户

发布于 2021-01-21 01:00:13

如果您使用push,则可以考虑推送单个元素。如果要添加另一个数组的元素,请使用concat方法

票数 1
EN

Stack Overflow用户

发布于 2021-01-21 01:08:30

您必须使用find而不是filter

代码语言:javascript
复制
addToCart(id) {
  var productToAdd = this.items.find(item => item.id === id);
  if (typeof(productToAdd) !== 'undefined') {
    this.shoppingCart.push(productToAdd);
  }
}
票数 1
EN

Stack Overflow用户

发布于 2021-01-21 01:14:28

这是非常简单的

代码语言:javascript
复制
//Assuming that 
 this.items= [ [ { "id": 2, "category": "Snack", "name": "Slanty", "price": "50", "image": "https://www.beautifulworld.com/wp-content/uploads/2016/09/K2-Mountain.jpg" } ], [ { "id": 6, "category": "Snack", "name": "Slanty", "price": "50", "image": "https://www.beautifulworld.com/wp-content/uploads/2016/09/K2-Mountain.jpg" } ] ]

this.shoppingCart=[];
this.items.forEach(item => {
 this.shoppingCart.push(item[0]);
});
console.log(this.shoppingCart) // this will be your resultant array
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65814028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档