最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Remove outer Array of Objects in JavaScript - Stack Overflow

programmeradmin9浏览0评论

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
Add a ment  | 

1 Answer 1

Reset to default 4

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);

发布评论

评论列表(0)

  1. 暂无评论