合并对象并删除属性

Beg*_*ner 7 javascript arrays

假设我有一个这样结构的对象数组

"err": [
    {
        "chk" : true,
        "name": "test"
    },
    {
        "chk" :true
        "post": "test"
    }
]
Run Code Online (Sandbox Code Playgroud)

我怎样才能像这样重新构建它:

"err": [
    {
        "post": "test"
        "name": "test"
    }
]
Run Code Online (Sandbox Code Playgroud)

我试过

arr.filter(obj => delete obj.chk);
Run Code Online (Sandbox Code Playgroud)

它可以成功删除该chk属性,但是如何将两个对象合并?

Cer*_*nce 10

您可以将它们展开Object.assign以创建一个新对象,然后chk从该对象中删除该属性:

const err = [
    {
        "chk" : true,
        "name": "test"
    },
    {
        "chk" :true,
        "post": "test"
    }
];
const newObj = Object.assign({}, ...err);
delete newObj.chk;
console.log([newObj]);
Run Code Online (Sandbox Code Playgroud)

另一种不删除的方法是chk在左侧解构,并使用 rest 语法:

const err = [
    {
        "chk" : true,
        "name": "test"
    },
    {
        "chk" :true,
        "post": "test"
    }
];
const { chk: _, ...newObj } = Object.assign({}, ...err);
console.log([newObj]);
Run Code Online (Sandbox Code Playgroud)