javascript - 如何构造一个新的对象数组,其中包含 JavaScript 中另一个对象数组中的一些已删除属性
问题描述
我有一个对象数组,我想从旧数组构造一个新数组,而没有旧数组中的一些属性。
例如我有一个像这样的对象数组
[
{
"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"
}
]
请问我如何构造一个具有与上面相同的属性但没有 likes 数组的新数组:例如,如下所示:
[
{
"userImages": [
"url to image here"
],
"_id": "5ec95161fc8ed82bc4d66279",
"gender": "male",
"name": "Aahan Aarav"
},
{
"userImages": [
"https://tieinupuserinfopictures.s3.ap-south-1.amazonaws.com/1589642272641-pexels-photo-1372134.jpeg"
],
"_id": "5ec95161fc8ed82bc4d66277",
"gender": "female",
"name": "Rajiv Rakesh"
}
]
解决方案
在现代环境中(直接或通过编译),您可以使用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;
}
推荐阅读
- php - 如何隐藏 Apache 服务器 IP?
- powershell - 限制预测对象
- c++ - 为什么我的过滤器的循环方向会改变我的结果?
- node.js - 获取特定消息获取返回未定义的特定反应
- azure - Azure DevOps 管道 - 获取上一阶段的内部版本号
- ios - Crash number of items in section 0 when there are only 0 sections in the collection view
- html - wp_mail sending only plain text messages
- html - Is there a way to make a background for my
attribute so that I can see the text clearer?
- c# - 从 JSON 中提取某些数据而不创建类
- java - 使用 FasterXML 解析 Json 以获取通用元素