0

I have an array looks like below...

arr = [{
  Bildbearbeiter: 1,
  Bügler: 2,
  Einkäufer: 3,
  Empfänger: 4,
  Fotograf: 5,
}];

but I want to change it

arr = [{
    Bildbearbeiter: 1
  },
  {
    Bügler: 2
  },
  {
    Einkäufer: 3
  },
  {
    Empfänger: 4
  },
  {
    Fotograf: 5
  }

];

So that i can iterate with each object. Is there any way to solve it??

Thanks in advance

1
  • 2
    why is the object wrapped in an array, could be more than one object in the array? what have you tried? Commented Oct 22, 2018 at 11:15

5 Answers 5

3

Use Array.map and Object.entries

let arr = [{Bildbearbeiter: 1,Bügler: 2,Einkäufer: 3,Empfänger: 4,Fotograf: 5}];

arr = Object.entries(arr[0]).map(([k,v]) => ({[k]:v}));
console.log(arr);

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

2 Comments

Interesting approach using .entries. Clever.
@briosheje - Thanks mate!
2

You can simply use Array.map() and Object.keys():

let arr = [ { Bildbearbeiter: 1, Bügler: 2, Einkäufer: 3, Empfänger: 4, Fotograf: 5, } ];

let result = Object.keys(arr[0]).map((key)=> ({[key] : arr[0][key]}));
console.log(result);

1 Comment

@DevNepal Happy to help you :-)
1

Try this by clicking on Run code snippet button:

var arr = [{
  Bildbearbeiter: 1,
  Bügler: 2,
  Einkäufer: 3,
  Empfänger: 4,
  Fotograf: 5,
}];

var newArray = [];

for (let key in arr[0]) {
  newArray.push({
    [key]: arr[0][key]
  });
}

console.log(newArray);

Or try this:

var arr = [{
  Bildbearbeiter: 1,
  Bügler: 2,
  Einkäufer: 3,
  Empfänger: 4,
  Fotograf: 5,
}];

var newArray = Object.keys(arr[0]).map(key => ({
  [key]: arr[0][key]
}))

console.log(newArray);

Comments

1

You could reduce the array by adding all objects to the result set.

var array = [{ "Bildbearbeiter": 1, "Bügler": 2, "Einkäufer": 3, "Empfänger": 4, "Fotograf": 5 }],
    result = array.reduce((r, o) => r.concat(Object.entries(o).map(([k, v]) => ({ [k]: v }))), []);
    
console.log(result);

Comments

0

You can map the array, loop through the keys of each object, and assign a brand new object holding the key and the value of the current item.

arr.map(i => {
    return Object.keys(i).map(k => {
       return {[k]: i[k]};
    });
});

Working fiddle: http://jsfiddle.net/sw3Lxm7f/

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.