uview的select数据转化

最近写微信小程序时遇上数据对接,

<template>
	<u-select v-model="show" mode="single-column" :list="list" @confirm="confirm"></u-select>
</template>

<script>
	export default {
		data() {
			return {
				show: true,
				list: [
					{
						value: '1',
						label: '江'
					},
					{
						value: '2',
						label: '湖'
					}
				],
			}
		},
		methods: {
			// 注意返回值为一个数组,单列时取数组的第一个元素即可(只有一个元素)
			confirm(e) {
				console.log(e);
			}
		}
	}
</script>

这里的数据格式如list[] 数组里的对象里的,对象里包括两个键名,value和label 获取数据如下 :

{1000: "盐", 1100: "粮食", 1200: "机械、设备、电器", 1300: "轻工原料及制品", 1400: "有色金属", 1500: "轻工医药产品", 1601: "鲜活农产品", 1602: "冷藏冷冻货物", 1700: "其他", 1701: "商品汽车", 0000: "请选择", 0100: "煤炭及制品", 0200: "石油、天然气及制品", 0300: "金属矿石", 0400: "钢铁",}

这里就需要对数据进行一下转化 我先用了普通的转换,

let obj ={1000: "盐", 1100: "粮食", 1200: "机械、设备、电器", 1300: "轻工原料及制品", 1400: "有色金属", 1500: "轻工医药产品", 1601: "鲜活农产品", 1602: "冷藏冷冻货物", 1700: "其他", 1701: "商品汽车", 0000: "请选择", 0100: "煤炭及制品", 0200: "石油、天然气及制品", 0300: "金属矿石", 0400: "钢铁",}
var arr = []

for (let i in obj) {
    // console.log(i)
    let o = {};
     o[i] = obj[i] //即添加了key值也赋了value值 o[i] 相当于o.name 此时i为变量
    arr.push(o)
}
console.log(arr)
// value: i, label: obj[i]

结果如下

[
  { '0': '请选择' },
  { '64': '煤炭及制品' },
  { '128': '石油、天然气及制品' },
  { '192': '金属矿石' },
  { '256': '钢铁' },
  { '1000': '盐' },
  { '1100': '粮食' },
  { '1200': '机械、设备、电器' },
  { '1300': '轻工原料及制品' },
  { '1400': '有色金属' },
  { '1500': '轻工医药产品' },
  { '1601': '鲜活农产品' },
  { '1602': '冷藏冷冻货物' },
  { '1700': '其他' },
  { '1701': '商品汽车' }
]

这里的数据和要求的数据还是有一些不一样。 对代码稍加修改

let obj = {
    1000: "盐",
    1100: "粮食",
    1200: "机械、设备、电器",
    1300: "轻工原料及制品",
    1400: "有色金属",
    1500: "轻工医药产品",
    1601: "鲜活农产品",
    1602: "冷藏冷冻货物",
    1700: "其他",
    1701: "商品汽车",
    0000: "请选择",
    0100: "煤炭及制品",
    0200: "石油、天然气及制品",
    0300: "金属矿石",
    0400: "钢铁",
}
var arr = []

for (let i in obj) {
    // console.log(i)
    let o = {
        value: i, label: obj[i]
    };
    // o[i] = obj[i] //即添加了key值也赋了value值 o[i] 相当于o.name 此时i为变量
    arr.push(o)
}
console.log(arr)
// value: i, label: obj[i]

结果如下

[
  { value: '0', label: '请选择' },
  { value: '64', label: '煤炭及制品' },
  { value: '128', label: '石油、天然气及制品' },
  { value: '192', label: '金属矿石' },
  { value: '256', label: '钢铁' },
  { value: '1000', label: '盐' },
  { value: '1100', label: '粮食' },
  { value: '1200', label: '机械、设备、电器' },
  { value: '1300', label: '轻工原料及制品' },
  { value: '1400', label: '有色金属' },
  { value: '1500', label: '轻工医药产品' },
  { value: '1601', label: '鲜活农产品' },
  { value: '1602', label: '冷藏冷冻货物' },
  { value: '1700', label: '其他' },
  { value: '1701', label: '商品汽车' }
]

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值