1

I have an array of objects as metioned below

Flag =[{type: "folder", name: "Real Estate", order: "1", delete: "false", canModify: "true"}
 {type: "folder", name: "Legal", order: "2", delete: "false", canModify: "false"}
 {type: "folder", name: "Construction", order: "3", delete: "false", canModify: "true"}
 {type: "folder", name: "Design", order: "4", delete: "false", canModify: "true"}];

I want to remove name,order from the array my output should look like

Flag =[{type: "folder",  delete: "false", canModify: "true"}
 {type: "folder",   delete: "false", canModify: "false"}
 {type: "folder",  delete: "false", canModify: "true"}
 {type: "folder",  delete: "false", canModify: "true"}];

Which is the better way to do it, array.splice() or array.pop()

0

5 Answers 5

2

I'm not sure how you could use splice and pop for this, I'd use the rest operator to remove the properties:

const Flag = [{
  type: "folder",
  name: "Real Estate",
  order: "1",
  delete: "false",
  canModify: "true"
}, {
  type: "folder",
  name: "Legal",
  order: "2",
  delete: "false",
  canModify: "false"
}, {
  type: "folder",
  name: "Construction",
  order: "3",
  delete: "false",
  canModify: "true"
}, {
  type: "folder",
  name: "Design",
  order: "4",
  delete: "false",
  canModify: "true"
}, ];

const result = Flag.map(x => {
  const {
    name,
    order,
    ...rest,
  } = x;

  return rest;
});

console.dir(result);

Sign up to request clarification or add additional context in comments.

Comments

0

You can use delete keyword to delete properties of object

let Flag =[{type: "folder", name: "Real Estate", order: "1", delete: "false", canModify: "true"},
 {type: "folder", name: "Legal", order: "2", delete: "false", canModify: "false"},
 {type: "folder", name: "Construction", order: "3", delete: "false", canModify: "true"},
 {type: "folder", name: "Design", order: "4", delete: "false", canModify: "true"}];
 
Flag.forEach(obj => {
  delete obj.name;
  delete obj.order;
})
console.log(Flag);

Comments

0

Use delete

Flag = [{
    type: "folder",
    name: "Real Estate",
    order: "1",
    delete: "false",
    canModify: "true"
  },
  {
    type: "folder",
    name: "Legal",
    order: "2",
    delete: "false",
    canModify: "false"
  },
  {
    type: "folder",
    name: "Construction",
    order: "3",
    delete: "false",
    canModify: "true"
  },
  {
    type: "folder",
    name: "Design",
    order: "4",
    delete: "false",
    canModify: "true"
  }
];

function del() {
  for (i = 0; i < Flag.length; i++) {
    if (Flag[i].name) delete Flag[i].name;
    if (Flag[i].order) delete Flag[i].order;
  }
  return Flag;
}
console.log(del());

Comments

0

The better way is to remove the property into the object with delete operator

Flag =[{type: "folder", name: "Real Estate", order: "1", delete: "false", canModify: "true"},
 {type: "folder", name: "Legal", order: "2", delete: "false", canModify: "false"},
 {type: "folder", name: "Construction", order: "3", delete: "false", canModify: "true"},
 {type: "folder", name: "Design", order: "4", delete: "false", canModify: "true"}];
 
 Flag.forEach( obj => { 
   delete obj.name; 
   delete obj.order; 
 });
 
 console.log(Flag)

array.splice() or array.pop() will remove the object into your array and not the properties

Comments

0

Approach 1

Flag = [{
    type: "folder",
    name: "Real Estate",
    order: "1",
    delete: "false",
    canModify: "true"
  },
  {
    type: "folder",
    name: "Legal",
    order: "2",
    delete: "false",
    canModify: "false"
  },
  {
    type: "folder",
    name: "Construction",
    order: "3",
    delete: "false",
    canModify: "true"
  },
  {
    type: "folder",
    name: "Design",
    order: "4",
    delete: "false",
    canModify: "true"
  }
];
var removeKeys = ['name', 'order'];
myArray = Flag.filter(function(obj) {
  removeKeys.forEach(e => delete obj[e]);
  return obj;
});
console.log(myArray);

Approach 2

Flag = [{
    type: "folder",
    name: "Real Estate",
    order: "1",
    delete: "false",
    canModify: "true"
  },
  {
    type: "folder",
    name: "Legal",
    order: "2",
    delete: "false",
    canModify: "false"
  },
  {
    type: "folder",
    name: "Construction",
    order: "3",
    delete: "false",
    canModify: "true"
  },
  {
    type: "folder",
    name: "Design",
    order: "4",
    delete: "false",
    canModify: "true"
  }
];
Flag = Flag.filter(function(obj) {
  delete obj.name;
  delete obj.order
  return obj;
});
console.log(Flag);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.