Hi have below structure for user interface -
export interface IUser {
EMPLOYEE_NAME :string,
EMPLOYEE_PID : string
}
At a point in a code , I am receiving array of IUser - IUser[] with multiple employeenames and their pids.
Eg.
{EMPLOYEE_NAME:'XYZ',EMPLOYEE_PID :'A123'},
{EMPLOYEE_NAME:'ABC',EMPLOYEE_PID :'B123'},
I want to fetch comma seperated PIDs - 'A123','B123'
I tried with map and foreach but not able to loop properly as its interface.
CodePudding user response:
You can use Array.prototype.map and Array.prototype.join to achieve.
let data = [{EMPLOYEE_NAME:'XYZ',EMPLOYEE_PID :'A123'},
{EMPLOYEE_NAME:'ABC',EMPLOYEE_PID :'B123'}];
let result = data.map(x => x.EMPLOYEE_PID).join(',');
console.log(result);
<iframe name="sif1" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>
If you want to wrap the ids in comma
let data = [
{EMPLOYEE_NAME:'XYZ',EMPLOYEE_PID :'A123'},
{EMPLOYEE_NAME:'ABC',EMPLOYEE_PID :'B123'}
];
let result = data.map(x => `'${x.EMPLOYEE_PID}'`).join(',');
console.log(result);
<iframe name="sif2" sandbox="allow-forms allow-modals allow-scripts" frameborder="0"></iframe>
CodePudding user response:
You can also use Array.prototype.map.call
to achieve.
const data = [
{EMPLOYEE_NAME:'XYZ',EMPLOYEE_PID :'A123'},
{EMPLOYEE_NAME:'ABC',EMPLOYEE_PID :'B123'}
];
Array.prototype.map.call(data,
function(item) {
return item['EMPLOYEE_PID'];
}
).join(",");
Output - 'A123,B123'