最近写微信小程序时遇上数据对接,
<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: '商品汽车' }
]