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: ,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": []
}
};
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./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": []
}
};
Share
Improve this question
edited Dec 6, 2018 at 18:10
Kalaschnik
asked Dec 6, 2018 at 17:22
KalaschnikKalaschnik
9081 gold badge12 silver badges26 bronze badges
3
-
2
let obj = arr[0]
... ??? – jonny Commented Dec 6, 2018 at 17:23 -
1
You can access through index or pop out the object using
array#pop
. – Hassan Imam Commented Dec 6, 2018 at 17:23 - I've upvoted just for how this question is clear. – Nurbol Alpysbayev Commented Dec 6, 2018 at 17:28
1 Answer
Reset to default 4You 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);