簡體   English   中英

如何在 NodeJS 中的現有 object 中添加新數組

[英]How to add new array in existing object in NodeJS

我需要幫助在現有的 object 中添加新屬性。在我原來的 object 中,如果存在product-metadata屬性 - 那么我將在現有的product-metadata屬性中添加新的兩個附加屬性prodLocationprodTime

如果我原來的 object 不包含product-metadata屬性 - 那么我必須添加具有這兩個屬性prodLocationprodTime product-metadata屬性。

如果現有 object 包含product-metadata屬性,我可以添加新的兩個屬性,但當原始 object 沒有product-metadata屬性時,我遇到了問題。

有人可以幫助我如何在現有的 object 中添加新屬性嗎? 提前感謝您的幫助。 謝謝!

請在下面找到我的代碼:

function updateProduct(obj) {

    const prodLocation = {
        key: 'location',
        value: 'US'
    };

    const prodTime = {
        key: 'time',
        value: '2019-01-01T00:00:00.000Z'
    };

    if (obj.hasOwnProperty('product-metadata')) {
        const prodtMetadata = existObj['product-metadata'];
        prodtMetadata.push(prodLocation);
        prodtMetadata.push(prodTime);
        obj['product-metadata'] = prodtMetadata;
        console.log(obj);
    } else {
        console.log("no metadata");
        var metaObj = {
            'product-metadata':
                [prodLocation, prodTime]
        }
        var newArr = [obj];
        newArr.push(metaObj);
        const finalJson = JSON.stringify(newArr);
        console.log(finalJson);

    }

}

var objWithMetadata = {
    "prodVersion": "0.3",
    "prodName": "test-product",
    "prodType": "electronics",
    "id": "7b966d7e-9671-45a7-9ed3-9877f26793f9",
    "product-info": {
        "price": "2323.4"
    },
    "productDesc": "test description",
    "product-metadata": [
        {
            "key": "key-1",
            "value": "value-1"
        }
    ]
};

var objWithoutMetadata = {
    "prodVersion": "0.3",
    "prodName": "test-product",
    "prodType": "electronics",
    "id": "7b966d7e-9671-45a7-9ed3-9877f26793f9",
    "product-info": {
        "price": "2323.4"
    },
    "productDesc": "test description"
};

updateProduct(objWithoutMetadata);

預計 Output:

{
    "prodVersion": "0.3",
    "prodName": "test-product",
    "prodType": "electronics",
    "id": "7b966d7e-9671-45a7-9ed3-9877f26793f9",
    "product-info": {
        "price": "2323.4"
    },
    "productDesc": "test description",
    "product-metadata": [
        {
            "key": "location",
            "value": "US"
        },
        {
            "key": "time",
            "value": "2019-01-01T00:00:00.000Z"
        }
    ]
}

找不到時,這會將您需要的屬性添加到當前的 object 中:

obj["product-metadata"] = [prodLocation, prodTime];
const finalJson = JSON.stringify(obj);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM