一些数组和数组对象处理方法

1.现在有个数组对象arr1,想根据里面的value去获取另外一个数组对象arr2里面的key键值对重新组成一个新的数组对象arr3。

arr1:[ {label: '告警详细描述', value: '告警详细描述', state: true, id: 88}]

arr2:[ {  "alarmId": 112301,   "告警详细描述": "测试告警" ,"告警等级": 1},

         {  "alarmId": 112302,   "告警详细描述": "测试告警1" ,"告警等级": 1},

         {  "alarmId": 112303,   "告警详细描述": "测试告2警" ,"告警等级": 1}]

想要得到的

arr3:[{   "告警详细描述": "测试告警" },{"告警详细描述": "测试告警1" },{"告警详细描述": "测试告2警}"]

 arr1.forEach((item: any) => {
    key = item.label
    arr2.map((i: any) => {
        arr3.push(Object.assign({}, { [key]: i[key] }))
    })
})

2.数组对象arr1中的值去筛选数组对象arr2中的键值对,加入到arr3

arr1:[ {label: '告警详细描述', value: '告警详细描述', state: true, id: 88},

         {label: '告警等级', value: '告警等级', state: true, id: 98}]

arr2:[ {  "alarmId": 112301,   "告警详细描述": "测试告警" ,"告警等级": 1},

         {  "alarmId": 112302,   "告警详细描述": "测试告警1" ,"告警等级": 1},

         {  "alarmId": 112303,   "告警详细描述": "测试告2警" ,"告警等级": 1}]

在上方arr3里面继续添加键值对,变成

arr3:[{  "alarmId": 112301,   "告警详细描述": "测试告警" },{"alarmId": 112302,  "告警详细描述": "测试告警1" },{"alarmId": 112303,  "告警详细描述": "测试告2警"}]

for (let i = 0; i < arr1.length - 1; i++) {
    let key =arr1[i + 1].label
    arr2.map((i: any, index: any) => {
    Object.assign(
        arr3[index],
            Object.assign({}, { [key]: i[key] })
         )
   })
}

3.寻找数组对象arr1是否存在某个对象arr2 ,有就把它删掉

arr1:[ {label: '告警详细描述', value: '告警详细描述', state: true, id: 88},

         {label: '告警等级', value: '告警等级', state: true, id: 98}]

arr2:{{label: '告警详细描述', value: '告警详细描述', state: true, id: 88}}

  let index = arr1.indexOf(arr2)
  if (index > -1) {
     arr1.splice(index, 1)
  }

 4.在数组对象arr1中删除某个键值对

arr1:[{  "alarmId": 112301,   "告警详细描述": "测试告警" },{"alarmId": 112302,  "告警详细描述": "测试告警1" },{"alarmId": 112303,  "告警详细描述": "测试告2警"}]

arr2:{{label: '告警详细描述', value: '告警详细描述', state: true, id: 88}}

使得arr1变成

 arr1:[{  "alarmId": 112301 },{"alarmId": 112302, },{"alarmId": 112303}]

arr1.map((item: any) => {
     delete item[arr2.label]
})

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值