如何在JavaScript中从另一个对象数组构造具有一些已删除属性的新对象数组

时间:2020-06-18 17:12:31

标签: javascript arrays object

我有一个对象数组,我想从一个旧数组构造一个新数组,而没有旧数组的某些属性。

例如,我有一个这样的对象数组

// JSON WEB TOKENS STRATEGY
passport.use(new JwtStrategy({
  jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
  secretOrKey: config.JWT_SECRET
}, async (payload, done) => {

  console.log("Find by pk, JWT strategy:", payload.sub)

  db.User.findByPk(payload.sub, {

请我如何构造一个具有与上面相同的属性但没有likes数组的新数组:例如,如下所示:

 [
       {
            "userImages": [
                "url to image here"
            ],
            "likes": [
                {
                    "userImages": [
                       "url to image here"
                    ],
                    "likes": [
                        "5ea708a40c244528c0e076c8"
                    ],
                    "_id": "5ea708a40c244528c0e076c8",
                    "name": "Lee",
                    "gender": "male"
                }
            ],
            "_id": "5ec95161fc8ed82bc4d66279",
            "gender": "male",
            "name": "Aahan Aarav"
        },
        {
            "userImages": [
                "url to image"
            ],
            "likes": [
                {
                    "userImages": [
                       "url to image here"
                    ],
                    "likes": [
                        "5ec95161fc8ed82bc4d66279",
                    ],
                    "_id": "5ea708a40c244528c0e076c8",
                    "name": "Lee",
                    "gender": "male"
                }
            ],
            "_id": "5ec95161fc8ed82bc4d66277",
            "gender": "female",
            "name": "Rajiv Rakesh"
        }
   ]

1 个答案:

答案 0 :(得分:0)

在现代环境中(直接或通过转译),您可以将map与解构和对象文字一起使用,以轻松挑选所需的属性并使用它们来创建新对象,也许可以使用箭头功能:

const result = original.map(
//   vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv−−− destructuring to pick out the desired props
    ({userImages, _id, gender, name}) => ({userImages, _id, gender, name})
// Object literal with shorthand props−−−−^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
);

实时示例:

const original = [
       {
            "userImages": [
                "url to image here"
            ],
            "likes": [
                {
                    "userImages": [
                       "url to image here"
                    ],
                    "likes": [
                        "5ea708a40c244528c0e076c8"
                    ],
                    "_id": "5ea708a40c244528c0e076c8",
                    "name": "Lee",
                    "gender": "male"
                }
            ],
            "_id": "5ec95161fc8ed82bc4d66279",
            "gender": "male",
            "name": "Aahan Aarav"
        },
        {
            "userImages": [
                "url to image"
            ],
            "likes": [
                {
                    "userImages": [
                       "url to image here"
                    ],
                    "likes": [
                        "5ec95161fc8ed82bc4d66279",
                    ],
                    "_id": "5ea708a40c244528c0e076c8",
                    "name": "Lee",
                    "gender": "male"
                }
            ],
            "_id": "5ec95161fc8ed82bc4d66277",
            "gender": "female",
            "name": "Rajiv Rakesh"
        }
   ];

const result = original.map(({userImages, _id, gender, name}) => ({userImages, _id, gender, name}));

console.log(result);
.as-console-wrapper {
    max-height: 100% !important;
}