起由:多选下拉框绑定的值是对象类型,想将对象里面id进行获取组成一个新数组,首选使用的map函数进行配置,但出现新数组全是undefined情况。
代码以及出现错误的情况:
<el-select
v-model="params.cityId"
placeholder="请选择所属地市"
value-key="id"
multiple
@change="teset"
>
<el-option value="" label="全部" />
<el-option
v-for="item in cityList"
:key="item.id"
:label="item.name"
:value="item"/>
</el-select>
teset(val) {
console.log('测试1111111111111', val)
if (val.length > 0) {
const tttt = val.map((item) => {
item.id
})
console.log('测试66666666666666', tttt)
}
},
由上图可以看出 明明选的值是有id 但是新数组里面全是undefined,找了很久,终于解决了 。。。。究其原因是因为map里面少了return,哈哈哈哈哈 粗心惹的祸 看下面代码:
teset(val) {
console.log('测试1111111111111', val)
if (val.length > 0) {
const tttt = val.map((item) => {
return item.id
})
console.log('测试66666666666666', tttt)
}
},
提示:如果不是少了return,出现undefined的情况,可能是原数组里面有个属性没有值,map就会让undefined占个位,这是我的理解 ,如果不对,请见谅哈!