数组对象拼串

数组对象拼串

var objs = [
	{
		"id": 445,
		"pubId": 22,
		"propName": "MQ类型",
		"propCode": "mqType",
		"defaultValue": "1",
		"memo": ""
	}, {
		"id": 446,
		"pubId": 22,
		"propName": "MQ主题",
		"propCode": "mqTopic",
		"defaultValue": "",
		"memo": ""
	}
]

   // 拼串生成   {"MQ类型":"mqType","MQ主题":"mqTopic"}
// var idsStr = objs.map(function(obj,index){
//     return obj.propName + ":" + obj.propCode
// }).join(",")
// console.log(idsStr)
const res = {}
objs.forEach(e => {
	res[e.propName]=e.propCode
})
console.log(res)
var parameters = {
		"同步终端类型": "dbVender",
		"dubbo地址": "dubboRegistryAddr"
	}
/*
  目标数据格式:
  [
	  {
		  "propName": "同步终端类型",
		  "propCode": "dbVender",
	  },
	  {
		  "propName": "dubbo地址",
		  "propCode": "dubboRegistryAddr",
	  }
  ]
*/
  let brr = []
  for (let key in parameters) {
  	brr.push({
	'propName': key,
	'propCode': parameters[key]
  })
 }
 console.log(brr)
 
 // 用于新增一行表单数据
 var temp = {
  'propName': '',
  'propCode': ''
 }
 brr.push(temp)
 console.log(brr)

这个用于下拉框select时,默认只有id,但是还想获取name时用。

var type = [
	{
		"id": 19,
		"pubName": "数据库",
		"pubClazz": "12334",
		"memo": "数据库1"
	},
	{
		"id": 21,
		"pubName": "数据中心",
		"pubClazz": "343234",
		"memo": "数据中心2"
	},
	{
		"id": 22,
		"pubName": "Kafka管道",
		"pubClazz": "5677",
		"memo": "kafka"
	}
]
var id = 19
type.forEach(e => {
	if (e.id === id) {
		console.log(e.pubName)
	}
})

拿到的一个number值,要转换为数组[ ]显示。

// html, 当前拿到的dtsTaskDo.taskType是一个 1-9 的 number值
<FormItem prop="dtsTaskDo.taskType" label="任务类型" multiple>
 <Select v-model="currentType" multiple @on-change="get_num">
   <Option v-for="item in dtsTaskTypes" :value="item.value" :label="item.label"
                       :key="item.value"></Option>
 </Select>
</FormItem>

在这里插入图片描述

// 方法1
let map = {
  '1': [1],
  '2': [2],
  '3': [1, 2],
  '4': [4],
  '5': [1, 4],
  '6': [2, 4],
  '7': [1, 2, 4]
}
this.currentType = map[this.form.dtsTaskDo.taskType]

// 方法2
// switch (this.form.dtsTaskDo.taskType) {
//   case 1:
//     this.currentType = [1]
//     break
//   case 2:
//     this.currentType = [2]
//     break
//   case 3:
//     this.currentType = [1, 2]
//     break
//   case 4:
//     this.currentType = [4]
//     break
//   case 5:
//     this.currentType = [1, 4]
//     break
//   case 6:
//     this.currentType = [2, 4]
//     break
//   case 7:
//     this.currentType = [1, 2, 4]
//     break
//   default:
//     break
// }


// 其中下拉的值为:
DTS_TASK_TYPES = [
 // 1: 全量   2: 增量    4: 比对    (如果为组合,则进行相加,顺序为  全量 -> 增量 -> 比对)
 // {
 //   label: '存量增量',
 //   value: 3
 // },
 {
   label: '存量迁移',
   value: 1
 },
 {
   label: '增量同步',
   value: 2
 },
 {
   label: '数据比对',
   value: 4
 }
]

同上,拿到的任务类型值为 1-9 的number 值,需要在表格中显示为拼串后的label值。
在这里插入图片描述

let taskTypeLabel = ''
const taskTypeArray = {
      1: [1],
      2: [2],
      3: [1, 2],
      4: [4],
      5: [1, 4],
      6: [2, 4],
      7: [1, 2, 4]
    }
	// 方法一  n+n
    let temp = {}
    DTS_TASK_TYPES.forEach(element => {
        temp[element.value] = element.label
    })
    console.log(temp)
    taskTypeLabel = taskTypeArray[params.row.taskType].map((v, i, arr) => {
      return temp[v]
    }).join('/')

	// 方法二  n*n
    // taskTypeLabel = taskTypeArray[params.row.taskType].map((v, i, arr) => {
    //   for (const element of DTS_TASK_TYPES) {
    //     if (element.value === v) {
    //       return element.label
    //     }
    //   }
    // }).join('/')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值