Filter Object Props Based On The Specified Array
I have an object with the following structure { cardControlItem: 'Tidak', cardDirectUseItem: 'Tidak', kbUnspscUuid: '6a564b8e-2976-4fde-8759-7951970d7500', substoreUuid: '2f2
Solution 1:
constfilter = (obj, arr) => Object.assign(...arr.map(el => ({[el]: obj[el]})));
so one can do
const result = filter({a:1, b:2, c:3}, ["a", "b"]);
Solution 2:
Try this solution. I am filter the properties which are in the obj
(filter
part) and then iterate over the properties which exist (reduce
part) and assign values of the properties into new object (acc
).
const obj = {
cardControlItem: 'Tidak',
cardDirectUseItem: 'Tidak',
kbUnspscUuid: '6a564b8e-2976-4fde-8759-7951970d7500',
substoreUuid: '2f2b04bb-8b80-4b1f-b827-bf20311e31ee',
cardDetailMin: 654,
cardDetailMax: 65,
cardDetailIncrement: 754,
cardDetailPriceOverall: 4534,
cardDetailPriceUnit: 0,
ltMeasurementMinUuid: 'fddca37a-d0a3-40a4-8537-e84375b01601',
ltMeasurementMaxUuid: '2bc6d7d2-5167-4459-9910-a65839008afd'
};
const keys = ['cardControlItem', 'cardDirectUseItem', 'kbUnspscUuid', 'substoreUuid', 'stockCardGroupUuid', 'stockCardBatchUuid'];
const mapped = keys.filter(key => obj.hasOwnProperty(key))
.reduce((acc, key) => { acc[key] = obj[key]; return acc }, {});
console.log(mapped);
Solution 3:
.Loop throught the array and check if the object has this key, if it is so then create a new object with this keys instead of mutating the original one
var orgObject = {
cardControlItem: 'Tidak',
cardDirectUseItem: 'Tidak',
kbUnspscUuid: '6a564b8e-2976-4fde-8759-7951970d7500',
substoreUuid: '2f2b04bb-8b80-4b1f-b827-bf20311e31ee',
cardDetailMin: 654,
cardDetailMax: 65,
cardDetailIncrement: 754,
cardDetailPriceOverall: 4534,
cardDetailPriceUnit: 0,
ltMeasurementMinUuid: 'fddca37a-d0a3-40a4-8537-e84375b01601',
ltMeasurementMaxUuid: '2bc6d7d2-5167-4459-9910-a65839008afd'
}
var keys = ['cardControlItem', 'cardDirectUseItem', 'kbUnspscUuid', 'substoreUuid', 'stockCardGroupUuid', 'stockCardBatchUuid']
var newObj = {};
keys.forEach(function(item) {
if (orgObject.hasOwnProperty(item)) {
newObj[item] = orgObject[item]
}
})
console.log(newObj)
Solution 4:
var data = { cardControlItem: 'Tidak',
cardDirectUseItem: 'Tidak',
kbUnspscUuid: '6a564b8e-2976-4fde-8759-7951970d7500',
substoreUuid: '2f2b04bb-8b80-4b1f-b827-bf20311e31ee',
cardDetailMin: 654,
cardDetailMax: 65,
cardDetailIncrement: 754,
cardDetailPriceOverall: 4534,
cardDetailPriceUnit: 0,
ltMeasurementMinUuid: 'fddca37a-d0a3-40a4-8537-e84375b01601',
ltMeasurementMaxUuid: '2bc6d7d2-5167-4459-9910-a65839008afd' };
var keys = ['cardControlItem', 'cardDirectUseItem', 'kbUnspscUuid', 'substoreUuid', 'stockCardGroupUuid', 'stockCardBatchUuid'];
var new_data = {};
for(var i = 0; i < keys.length; i++){
if(data.hasOwnProperty(keys[i])){
new_data[keys[i]] = data[keys[i]];
}
}
console.log(new_data);
Post a Comment for "Filter Object Props Based On The Specified Array"