Kết hợp đối tượng và xóa một thuộc tính


8

Giả sử tôi có một mảng các đối tượng có cấu trúc như thế này

"err": [
    {
        "chk" : true,
        "name": "test"
    },
    {
        "chk" :true
        "post": "test"
    }
]

Làm thế nào tôi có thể cấu trúc lại nó như thế này:

"err": [
    {
        "post": "test"
        "name": "test"
    }
]

Tôi đã thử

arr.filter(obj => delete obj.chk);

Nó có thể xóa thành công chktài sản, nhưng làm thế nào tôi có thể kết hợp hai đối tượng?


Hai đối tượng nào? sau khi xóa (chỉ có một đối tượng) hoặc trước khi xóa?
Pimpale Pashale

2
Logic là gì? Mục đích của là chkgì?
trincot

1
Bạn có thực sự cần kết quả cuối cùng là một mảng nếu chỉ có một đối tượng trong đó không?
Barmar

Câu trả lời:


9

Bạn có thể trải chúng vào Object.assignđể tạo một đối tượng mới, sau đó xóa thuộc chktính khỏi đối tượng đó:

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

Một phương pháp khác, không xóa, sẽ là hủy chkcấu trúc ở phía bên trái và sử dụng cú pháp nghỉ:

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


Ồ Đây là cái _gì :)
StepUp

1
Chỉ là một tên biến không sử dụng. Có thể đã để nó lại chk, nhưng điều đó có thể gây hiểu lầm đôi chút vì không có ý định sử dụng lại
SurePerformance
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.