将对象数组减少/过滤为新的对象数组. [英] Reduce/Filter array of objects into new array of objects.

查看:108
本文介绍了将对象数组减少/过滤为新的对象数组.的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

假设我有对象数组,我需要使用先前的数据创建一个新的对象数组.就我而言,我不需要过滤所有数据. ES6的最佳解决方案是什么?

Suppose I have array of objects, I need to create new one array of objects with data from previous. In my case I need filter no all data. What is the best solution with ES6.

data = [{
 deviceId:1
 deviceStatus:"Offline"
 deviceType:"Tag"
 isConfigured:true
 isEnabled:true
 isLocalized:false
 isMasterAssigned:false
 lastAliveMessage:null
 location:{roomId: 5, name: "Room_207", zones: null, plan: null}
 name:"Tag For sending an alarm"
},{
 deviceId:2
 deviceStatus:"Online"
 deviceType:"Tag"
 isConfigured:true
 isEnabled:true
 isLocalized:false
 isMasterAssigned:false
 lastAliveMessage:null
 location:{roomId: 6, name: "Room_208", zones: null, plan: null}
 name:"Some Text"
}]

我只需要过滤所需的数据.

I need to filtered only needed data.

filteredData=[{
     deviceId:2
     deviceStatus:"Online"
     deviceType:"Tag"
     lastAliveMessage:null
     name: 'name:"Some Text'
     location: location.name
},{
     deviceId:2
     deviceStatus:"Online"
     deviceType:"Tag"
     lastAliveMessage:null
     name: 'name:"Some Text'
     location: location.name
}]

推荐答案

使用

Use the Array#map function to iterate over them and create another type of objects.

const data = [{
    deviceId:1,
    deviceStatus:"Offline",
    deviceType:"Tag",
    isConfigured:true,
    isEnabled:true,
    isLocalized:false,
    isMasterAssigned:false,
    lastAliveMessage:null,
    location:{roomId: 5, name: "Room_207", zones: null, plan: null},
    name:"Tag For sending an alarm"
},{
    deviceId:2,
    deviceStatus:"Online",
    deviceType:"Tag",
    isConfigured:true,
    isEnabled:true,
    isLocalized:false,
    isMasterAssigned:false,
    lastAliveMessage:null,
    location:{roomId: 6, name: "Room_208", zones: null, plan: null},
    name:"Some Text"
}];

const newObj = data.map(item => ({
  deviceId: item.deviceId,
  deviceStatus: item.deviceStatus,
  deviceType: item.deviceType,
  lastAliveMessage: item.lastAliveMessage,
  name: item.name,
  location: item.location.name
}));

console.log(newObj);

这篇关于将对象数组减少/过滤为新的对象数组.的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆