如何显示对象中只需要的值对



这是我的对象:

{
    "user": {
        "id": 11,
        "name": null,
        "email": null,
        "phone": "000000000",
        "age": null,
        "role": "user",
        "otp": "656440",
        "otpCreatedAt": null,
        "createdAt": "2020-10-24T07:38:54.000Z",
        "updatedAt": "2020-10-24T07:38:54.000Z"
    }
}

我是从mysqldb上查询得到的,现在我不想把所有的值都发送给响应!相反,我需要在一个键下发送选定的值!

预期输出

{
    "user" :{
        "name": null,
        "email": null,
        "phone": "000000000",
        "age": null,
      }
}

我可以分割这个并像name: user.name等一样发送,但我需要所有需要的密钥!

如何做到这一点?

到现在为止,我只是这样分裂它!

phone: user.phone, name: user.name, age: user.age, email: user.email

只需使用旧对象中所需的键/值构造一个新对象。

let u = {
    "user": {
        "id": 11,
        "name": null,
        "email": null,
        "phone": "000000000",
        "age": null,
        "role": "user",
        "otp": "656440",
        "otpCreatedAt": null,
        "createdAt": "2020-10-24T07:38:54.000Z",
        "updatedAt": "2020-10-24T07:38:54.000Z"
    }
}
let newuser = {user: {name: u.user.name, email: u.user.email, phone: u.user.phone, age: u.user.age}};
console.log(newuser);

这是一个好的解决方案吗?我想走这条路。

const { user: { name, email, phone, age } } = {
    "user": {
        "id": 11,
        "name": null,
        "email": null,
        "phone": "000000000",
        "age": null,
        "role": "user",
        "otp": "656440",
        "otpCreatedAt": null,
        "createdAt": "2020-10-24T07:38:54.000Z",
        "updatedAt": "2020-10-24T07:38:54.000Z"
    }
};
const expectedResult = {
  "user": { name, email, phone, age }
}

属性可以使用JSON.parse reviver和JSON.stringify replacer:排除

var o = { "user": { "id": 11, "name": null, "email": null, "phone": "000000000", "age": null, "role": "user", "otp": "656440", "otpCreatedAt": null, "createdAt": "2020-10-24T07:38:54.000Z", "updatedAt": "2020-10-24T07:38:54.000Z" } }
var j = JSON.stringify(o, (k, v) => /^(|user|name|email|phone|age)$/.test(k) ? v : undefined, 2)
console.log(j)

最新更新