javascript - 如何在反应中将一个对象推向另一个对象?
问题描述
这是我用来将一个对象分配给另一个对象的方法
var check = Object.assign(product, cart_item);
但它没有添加为对象中的键,即(var check)
请分享您对此的想法,我如何将它添加为另一个键,就像0,1,2
图像中的键一样。
代码 :-
var product = {
brand: data.product.brandName,
category: category,
country: 'IN',
email: Cookies.get('useremail'),
imageUrl: data.product.media.thumbnails["0"].src,
location: 'product page',
magento_product_id: data.product.productKey,
manufacturer: 'Widow',
microcategory: 'Printed Leggings',
name: data.product.name,
price: data.product.price.price.value,
product_id: data.product.productKey,
products:cart_item,
quantity: 1,
regular_price: data.product.price.price.value,
size: '',
size_type: data.selectedVariant.label,
special_category: 'Brands,Char Test Category,Widow,Widow',
special_price: data.product.price.specialPrice,
stock_quantity: data.selectedVariant.totalQuantity,
swatch: data.selectedVariant.color,
trend: 'WID Darkest Hour 2020',
type: data.product.type,
url: data.product.url
};
data.session.cart.items.forEach(function (properties) {
var items = {};
items["brand"] = properties.product.display_brand;
items["category"] = "";
items["country"]= "IN";
items["imageUrl"]=properties.product.image.url;
items["magento_product_id"]=properties.product.id;
items["manufacturer"]="";
items["microcategory"]="";
items["name"]=properties.product.name;
items["price"]=properties.product.price_range.minimum_price.final_price.value;
items["product_id"]=properties.id;
items["quantity"]=properties.quantity;
items["regular_price"]=properties.product.price_range.minimum_price.regular_price.value;
items["size"]=properties.product.size;
items["size_type"]=properties.product.size_label;
items["special_category"]="";
items["special_price"]=properties.product.special_price;
items["stock_quantity"]="";
items["swatch"]=properties.product.color_label;
items["trend"]="";
items["type"]=properties.product.__typename;
items["url"]=properties.url;
cart_item.push(items)
});
var check = Object.assign(product, cart_item);
console.log(check);
解决方案
的重点Object.assign
是合并对象的属性。
const first = { first: 1, first_2: 2 };
const second = { second: 3, second_2: 4 };
const result = Object.assign(first, second);
console.log(result);
如果要向对象添加新属性,则需要明确地这样做:
const first = { first: 1, first_2: 2 };
const second = { second: 3, second_2: 4 };
const result = { "0": first };
result["1"] = second;
console.log(result);
...但是如果您想要一个编号对象的顺序列表,那么您应该将它们组织在一个数组中,而不是首先构建您自己的对象。
const first = { first: 1, first_2: 2 };
const second = { second: 3, second_2: 4 };
const result = [ first ];
result.push(second);
console.log(result);
推荐阅读
- tree - 给定一个 BST,我们需要检查所有根节点的值是否是其左右节点的平均值。如果不删除根
- c# - 在启动时运行一个方法
- swift - 具有基本身份验证流程问题的 Alamofire 重新身份验证
- r - do.call() 没有正确附加数据帧列表。知道为什么吗?
- c++ - 快速排序 C++ 的实现
- javascript - javascript定义这样的类方法有什么区别:var method1 = function和function method1()
- ajax - Laravel Ajax 可排序?
- python - Selenium 在本地运行时可以找到元素,但在 Heroku 服务器上运行时找不到元素
- python - 当添加列表之一是空列表时如何仍然获得非空结果
- algorithm - 为将矩阵形式的图形作为参数的方法编写算法