首页 > 解决方案 > 如何在反应中将一个对象推向另一个对象?

问题描述

这是我用来将一个对象分配给另一个对象的方法

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);

预期输出: 在此处输入图像描述 谢谢

标签: javascriptreactjs

解决方案


的重点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);


推荐阅读