3

I'm trying to remove keys from an object where the values is Array(0). Here's the object:

{fruit: Array(1), dairy: Array(2), vegetables: Array(0)}

This is the desired result:

{fruit: Array(1), dairy: Array(2)}

So far, I've been playing with the delete operator and .filter/.reduce methods.

Any help would be awesome :)

1
  • And what have you come up with so far? Commented May 24, 2019 at 0:00

2 Answers 2

1

Just iterate over the keys of the object, check if the value for that key is an empty array and if so, delete it:

let obj = {
  a: [1],
  b: [],
  c: 5,
  d: false
}

for (const key in obj) { if (Array.isArray(obj[key]) && !obj[key].length) delete obj[key] };

console.log(obj);

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

Comments

0

The filter/reduce operators are for Arrays not for objects. If you must use the filter/reduce operators, you can try:

const obj = {a: [1], b: [1,2], c: []};

const filtered = Object.keys(obj)
  .filter(key => Array.isArray(obj[key]) && obj[key].length != 0)
  .reduce((acc, key) => {acc[key] = obj[key]; return acc}, {});
  
console.log(filtered);

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.