我有以下串列,我只想添加這些屬性名稱 PRODUCT_TYPE, PRODUCT_TERM, PRODUCT_IDin myProduct。我想忽略其余的屬性 - 我有大約 100 個屬性,只想從中過濾掉其中的幾個myProduct
請在下面找到我的代碼:
const obj = {
myProduct: [
{
name: "PRODUCT_PRICE",
value: "234.324",
},
{
name: "PRODUCT_NAME",
value: "Insurance",
},
{
name: "PRODUCT_TYPE",
value: "Life",
},
{
name: "PRODUCT_TERM",
value: "Long",
},
{
name: "PRODUCT_ID",
value: "AP3232343JKD",
},
{
name: "PRODUCT_ENABLED",
value: "TRUE",
},
],
};
const allowedNames = [
'PRODUCT_TYPE',
'PRODUCT_TERM',
'PRODUCT_ID'
];
const updateCertainProperties = {
PRODUCT_ID: "app.productID",
PRODUCT_ENABLED: "app.product.enabled"
};
const productName = "testProduct_3234dfasfdk3msldf23";
const environment = obj.myProduct.map((o) => {
obj.myProduct.filter(product => allowedNames.includes(product.name));
if (updateCertainProperties[o.name]) o.name = updateCertainProperties[o.name];
if (o.name === "PRODUCT_NAME") o.value = productName;
return obj.myProduct;
});
console.log(obj.myProduct)
預期輸出:
[
{ name: 'PRODUCT_NAME', value: 'testProduct_3234dfasfdk3msldf23' },
{ name: 'PRODUCT_TYPE', value: 'Life' },
{ name: 'PRODUCT_TERM', value: 'Long' },
{ name: 'app.productID', value: 'AP3232343JKD' },
{ name: 'app.product.enabled', value: 'TRUE' }
]
有人可以幫助我如何實作這一目標?提前感謝您的幫助!
uj5u.com熱心網友回復:
您可以創建一個允許名稱的陣列,filter然后使用includes()
css 只是為了更漂亮的輸出
const obj = {
myProduct: [
{
name: "PRODUCT_NAME",
value: "Insurance",
},
{
name: "PRODUCT_TYPE",
value: "Life",
},
{
name: "PRODUCT_TERM",
value: "Long",
},
{
name: "PRODUCT_ID",
value: "AP3232343JKD",
},
{
name: "PRODUCT_ENABLED",
value: "TRUE",
},
],
};
const allowedNames = [
'PRODUCT_TYPE',
'PRODUCT_TERM',
'PRODUCT_ID'
];
obj.myProduct = obj.myProduct.filter(product => allowedNames.includes(product.name));
console.log(obj.myProduct);
.as-console-wrapper {
max-height: unset !important;
top: 0;
}
uj5u.com熱心網友回復:
聽起來您是在描述過濾陣列,而不是“排除屬性”。您有一個物件陣列,每個物件由一個name屬性和一個屬性組成value。并且您只需要在其name屬性中具有特定值的物件。
.filter在陣列上使用,它可能看起來像這樣:
obj.myProduct = obj.myProduct.filter(p => (
p.name === 'PRODUCT_TYPE' ||
p.name === 'PRODUCT_TERM' ||
p.name === 'PRODUCT_ID'));
這將過濾掉與提供的條件不匹配的陣列元素。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/364492.html
標籤:javascript 节点.js
