[英]How to add new array in existing object in NodeJS
我需要幫助在現有的 object 中添加新屬性。在我原來的 object 中,如果存在product-metadata
屬性 - 那么我將在現有的product-metadata
屬性中添加新的兩個附加屬性prodLocation
和prodTime
。
如果我原來的 object 不包含product-metadata
屬性 - 那么我必須添加具有這兩個屬性prodLocation
和prodTime
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.