I’ve got an JavaScript Array of Objects. These Objects have a unique identifier as a String. Since there is no need to have them in an array, how do I get rid of the outer array?
When trying to pop, (un)shift, etc. I’m always losing either UniqueStringA or UniqueStringB
I added a jsbin link here: https://jsbin.com/sulozeyelo/edit?js,console
What I got
const arrObj = [
{
"UniqueStringA": {
"abc": [
{
"PropPair": {
"a": "c",
"b": "d"
}
},
{
"PropPair": {
"a": "c",
"b": "d"
}
}
],
"def": [],
"efg": [
{
"PropPair": {
"a": "c",
"b": "d"
}
},
{
"PropPair": {
"a": "c",
"b": "d"
}
}
],
"xyz": []
}
},
{
"UniqueStringB": {
"abc": [
{
"PropPair": {
"a": "c",
"b": "d"
}
},
{
"PropPair": {
"a": "c",
"b": "d"
}
}
],
"def": [],
"efg": [
{
"PropPair": {
"a": "c",
"b": "d"
}
},
{
"PropPair": {
"a": "c",
"b": "d"
}
}
],
"xyz": []
}
}
];
Result should be like:
const obj = {
"UniqueStringA": {
"abc": [
{
"PropPair": {
"a": "c",
"b": "d"
}
},
{
"PropPair": {
"a": "c",
"b": "d"
}
}
],
"def": [],
"efg": [
{
"PropPair": {
"a": "c",
"b": "d"
}
},
{
"PropPair": {
"a": "c",
"b": "d"
}
}
],
"xyz": []
},
"UniqueStringB": {
"abc": [
{
"PropPair": {
"a": "c",
"b": "d"
}
},
{
"PropPair": {
"a": "c",
"b": "d"
}
}
],
"def": [],
"efg": [
{
"PropPair": {
"a": "c",
"b": "d"
}
},
{
"PropPair": {
"a": "c",
"b": "d"
}
}
],
"xyz": []
}
};
asked Dec 6, 2018 at 17:22
Kalaschnik
9281 gold badge12 silver badges26 bronze badges
1 Answer 1
You can use Object.assign() and spread operator.
const arrObj = [
{
"uniqueStringA": {
"abc": [{
"propPair": {
"A": "Hello",
"B": "World"
}
}]
}
},
{
"uniqueStringB": {
"abc": [{
"propPair": {
"A": "Hello",
"B": "World"
}
}]
}
}];
const obj = Object.assign({}, ...arrObj );
console.log(obj);
answered Dec 6, 2018 at 17:35
qwermike
1,4962 gold badges13 silver badges27 bronze badges
Sign up to request clarification or add additional context in comments.
1 Comment
Kalaschnik
I updated my code. I’m losing uniqueStringA when doing you method
lang-js
let obj = arr[0]... ???array#pop.