JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
<div id='results'>
</div>
JavaScript
function transform(targetObj, keyArray) {
let resultArray = [];
if (!targetObj || !keyArray) { return resultArray; }
for (let i = 0; i < keyArray.length; i++) {
if (!targetObj.hasOwnProperty(keyArray[i])) { continue; }
let item = {};
item[keyArray[i]] = targetObj[keyArray[i]];
resultArray.push(item);
}
return resultArray;
}
// Tests
let obj = { tom: 11, jim: 22, jay: 13 };
let input1 = ['jim', 'tom', 'kim', 'jay'];
let input2 = ['may', 'jay', 'tom', 'jim'];
let ouputContainer = document.getElementById('results');
let result1 = transform(obj, input1);
ouputContainer.innerText = JSON.stringify(result1);
let result2 = transform(obj, input2);
ouputContainer.innerText = ouputContainer.innerText + '\n' + JSON.stringify(result2);