May i know how to achieve the same with Map
I assume you mean map. map isn't the right tool for doing exactly what that loop does, because that loop modifies the array in place, but map creates a new array instead.
If you want a new array, perhaps also with new objects (e.g., functional programming or immutable programming):
// Replace `this.Array` with a new array
this.Array = this.Array.map(element => {
// If we need to change this element...
if (element.propertyObject.hasOwnProperty("header")) {
// ...do a shallow copy along with the replacement
element = {...element, ColumnName: element.propertyObject.header};
}
return element;
});
Note that that assumes the elements are simple objects. If they aren't, you'll need to handle constructing the replacement differently than just using {...original}.
But if you want to keep the same array as your current code does, your loop is just fine. You have other options (like forEach or for-of), but what you have is also fine. for-of is well-suited to what you're doing:
for (const element of this.Array) {
if (element.propertyObject.hasOwnProperty("header")) {
element.ColumnName = element.propertyObject.header;
}
}
Side note: In new code, you might want to use Object.hasOwn rather than Object.prototype.hasOwnProperty (with a polyfill if needed for older environments; recent versions of all modern browsers support it natively, though).