在JavaScript中删除外部对象数组

时间:2018-12-06 17:22:02

标签: javascript arrays json

我有一个JavaScript对象数组。这些对象具有一个唯一的标识符作为字符串。既然不需要将它们放在数组中,该如何摆脱外部数组?

尝试弹出,(取消)移位等时,我总是会丢失UniqueStringA或UniqueStringB

我在此处添加了一个jsbin链接:https://jsbin.com/sulozeyelo/edit?js,console

我得到的

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": []
        }
    }
];

结果应类似于:

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": []
    }
};

1 个答案:

答案 0 :(得分:1)

您可以使用Object.assign()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);