Suppose we have the following object:
var obj = { fn1: function() { } }
how can I dynamically add another member to it, say
fn2: function() {}
The Add-Member cmdlet lets you add members (properties and methods) to an instance of a PowerShell object. For instance, you can add a NoteProperty member that contains a description of the object or a ScriptMethod member that runs a script to change the object.
If you need to add an element to the beginning of your array, try unshift(). And you can add arrays together using concat().
Use += to Add Objects to an Array of Objects in PowerShell The Plus Equals += is used to add items to an array. Every time you use it, it duplicates and creates a new array. You can use the += to add objects to an array of objects in PowerShell.
As others have pointed out:
obj.fn2 = function(){ ... };
Note that if "fn2" is not a valid identifier, you must instead use the 'array' notation for the object:
obj["fn2"] = function(){ ... }; obj["!! crazy-names#allowed?!"] = function(){ ... };
This is also how you would do it if you had the name of the property stored in a variable:
var propName = "fn2"; obj[propName] = function(){ ... };
If you want to test if a property exists for an object, you can use the in
operator:
if ("fn2" in obj){ ... }
If you want to remove a property from an object, use the delete
keyword:
var o = { a:42 }; console.log( "a" in o ); // true delete o.a; // Or delete o["a"] console.log( "a" in o ); // false
To iterate over all properties in an object, use the in
operator in a for loop. Be sure to var
the variable so that it isn't global:
var o = { a:42, b:17 }; var allPropertyNames = []; var allPropertyValues = []; for (var propName in o){ // If you don't do this test, propName might be a property inherited // by this object, and not a property on the object itself. if (o.hasOwnProperty(propName)){ allPropertyNames.push(propName); allPropertyValues.push(o[propName]); } } console.log( allPropertyNames ); // [ "a", "z" ] console.log( allPropertyValues ); // [ 42, 17 ]
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With