Issue
I have a object which contains information of sources:
multiplierInformation = [ { groupName: 'RAW MATERIALS', sourceType : [ { name: 'Cement', quantityDescription: '', quantityFlag: false } ] } ]
I need to filter out values based on name property.
Please suggest.
Solution
basically this should work:
let arrayComingFromBackend = [{
controls: [],
count: 1,
description: "",
id: null,
key: "cement",
name: "Cement",
quantity: 1,
sourceFormulaId: "31de1317-f5a5-4620-a854-fcfed851ac78",
sourceSpecifications: [],
sourceType: "RAW MATERIALS",
usageParameters: [],
length: 1
}];
let multiplierInformation = [{
groupName: 'RAW MATERIALS',
sourceType: [{
name: 'Cement',
quantityDescription: '',
quantityFlag: false
}]
},
{
groupName: 'AIR TRANSPORT',
sourceType: [{
name: 'Helicopter',
quantityDescription: 'Number of Flights',
quantityFlag: true
},
{
name: 'Air Freight',
quantityDescription: 'Number of Flights',
quantityFlag: true
}
]
},
{
groupName: 'OTHER EQUIPMENT',
sourceType: [{
name: 'Non-Road Vehicle',
quantityDescription: 'Number of this Equipment',
quantityFlag: true
},
{
name: 'Forklift - Diesel',
quantityDescription: 'Number of Forklifts',
quantityFlag: true
},
{
name: 'Crane - Diesel',
quantityDescription: 'Number of Cranes',
quantityFlag: true
},
{
name: 'Stationary Equipment',
quantityDescription: 'Number of this Equipment',
quantityFlag: true
}
]
},
{
groupName: 'FACILITY/BUILDING',
sourceType: [{
name: 'Office',
quantityDescription: '',
quantityFlag: false
},
{
name: 'Warehouse and Storage',
quantityDescription: '',
quantityFlag: false
},
{
name: 'Other',
quantityDescription: '',
quantityFlag: false
}
]
},
{
groupName: 'FRAC EQUIPMENT',
sourceType: [{
name: 'Tier 2',
quantityDescription: 'Number of Engines',
quantityFlag: true
},
{
name: 'Dual Fuel T2',
quantityDescription: 'Number of Engines',
quantityFlag: true
},
{
name: 'Tier 4F',
quantityDescription: 'Number of Engines',
quantityFlag: true
},
{
name: 'Gas Turbine (based on DLE) 940 BTU Gas',
quantityDescription: 'Number of Engines',
quantityFlag: true
},
{
name: 'Gas Turbine (based on WLE) 940 BTU Gas',
quantityDescription: 'Number of Engines',
quantityFlag: true
},
{
name: 'Gas Turbine (based on GE SAC) 940 BTU Gas',
quantityDescription: 'Number of Engines',
quantityFlag: true
},
{
name: 'Grid Power (Using TX Ercot Grid Emissions)',
quantityDescription: 'Number of Engines',
quantityFlag: true
}
]
},
{
groupName: 'CEMENT EQUIPMENT',
sourceType: [{
name: 'Elite Tier 3',
quantityDescription: 'Number of Units',
quantityFlag: true
},
{
name: 'Elite Tier 4i',
quantityDescription: 'Number of Units',
quantityFlag: true
},
{
name: 'Elite Rebuild',
quantityDescription: 'Number of Units',
quantityFlag: true
},
{
name: 'Red Tiger',
quantityDescription: 'Number of Units',
quantityFlag: true
}
]
},
{
groupName: 'RAIL TRANSPORT',
sourceType: [{
name: 'Rail Transport',
quantityDescription: 'Number of Trips',
quantityFlag: true
}]
},
{
groupName: 'RIGS',
sourceType: [{
name: 'Halliburton Controlled Rig',
quantityDescription: 'Number of Trips',
quantityFlag: false
},
{
name: '3rd Party Controlled / Rig Power',
quantityDescription: 'Number of Trips',
quantityFlag: false
}
]
},
{
groupName: 'ROAD TRANSPORT',
sourceType: [{
name: 'Passenger Car',
quantityDescription: 'Number of Vehicles',
quantityFlag: true
},
{
name: 'Light Duty Vehicle',
quantityDescription: 'Number of Vehicles',
quantityFlag: true
},
{
name: 'Medium Duty Vehicle',
quantityDescription: 'Number of Vehicles',
quantityFlag: true
},
{
name: 'Heavy Duty Vehicle',
quantityDescription: 'Number of Vehicles',
quantityFlag: true
},
{
name: 'Bus',
quantityDescription: 'Number of Vehicles',
quantityFlag: true
}
]
},
{
groupName: 'SEA TRANSPORT',
sourceType: [{
name: 'Halliburton Controlled Vessel',
quantityDescription: 'Number of Vessels',
quantityFlag: true
},
{
name: '3rd Party Controlled Vessel',
quantityDescription: 'Number of Vessels',
quantityFlag: true
}
]
},
{
groupName: 'WASTE',
sourceType: [{
name: 'Waste Disposal',
quantityDescription: 'Number of Vessels',
quantityFlag: false
},
{
name: 'Oil Contaminated Waste',
quantityDescription: 'Number of Vessels',
quantityFlag: false
},
{
name: 'Lithium Battery',
quantityDescription: 'Number of Vessels',
quantityFlag: false
},
{
name: 'Waste Recycling',
quantityDescription: 'Number of Vessels',
quantityFlag: false
}
]
},
{
groupName: 'PS EQUIPMENT',
sourceType: [{
name: 'PS Stationary Equipment',
quantityDescription: 'Number of this Equipment',
quantityFlag: false
},
{
name: 'PS Self-Driving Equipment',
quantityDescription: 'Number of this Equipment',
quantityFlag: false
}
]
}
]
let res = multiplierInformation.filter(information => {
for (const item of information.sourceType) {
return arrayComingFromBackend.every(f => {
const [key, value] = Object.entries(f)[0];
return item[key] == value
});
}
});
let arrayComingFromBackend = [{
controls: [],
count: 1,
description: "",
id: null,
key: "cement",
name: "Cement",
quantity: 1,
sourceFormulaId: "31de1317-f5a5-4620-a854-fcfed851ac78",
sourceSpecifications: [],
sourceType: "RAW MATERIALS",
usageParameters: [],
length: 1
}];
let res = multiplierInformation.filter(information => {
for (const item of information.sourceType) {
return arrayComingFromBackend.every(f => {
const [key, value] = Object.entries(f)[0];
return item[key] == value
});
}
});
console.log(res);
Answered By - hafizi hamid
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.