'How to dynamically add an array to an object?
What I am trying to achieve
I am trying to dynamically add an array to an object. That is, starting with
{colour: "white", type: "electric"};
and ending with
{colour: "white", type: "electric", owners: ["person1", "person2", "person3"] };
Consider the following object below
let car = {colour: "white", type: "electric"};
If I want to add another property to this object, I can check if it exist. Then add to it as follows.
if( typeof car.status === "undefined")
car.status = "sold";
What i have tried
Using the above logic I tried the following
let car = {
colour: "white",
type: "electric"
};
if (typeof car.owners === "undefined")
car.owners.push("person1");
but this doesn't work.
The question
How do I add an array to an object?
Solution 1:[1]
If the status property exists in the object then u have to follow the below way
let car = {colour: "white", type: "electric",status:"somethings!"};
if(car.status){
car.status = "sold";
}
console.log(car)
// o/p { colour: 'white', type: 'electric', status: 'sold' }
If the status property does not exist in the object
let car = {colour: "white", type: "electric"};
if(car.status){
car.status = "sold";
}
console.log(car)
// o/p { colour: 'white', type: 'electric' }
If the Array property exists inside the object then you should follow the below sample code
let car = {colour: "white", type: "electric"};
if(car.owners && car.owners.length > 0){
// when the owners property exist and it's not an empty array
car.owners.push("person1");
} else {
// when the owners property does not exist or it's an empty array
car.owners = [];
car.owners.push("person2");
}
console.log(car)
// o/p { colour: 'white',type: 'electric',owners: [ 'person2' ] }
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
