Welcome to MLink Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
464 views
in Technique[技术] by (71.8m points)

关于js两个数组如何生成新的数据结构的问题

参考element的穿梭框,我设置了这样两个数组

let aaa = [  
    {key:'0001',label:'图片1'},
    {key:'0002',label:'图片2'},
    {key:'0003',label:'图片3'},
    {key:'0004',label:'图片4' },
    {key:'0005',abel:'图片5'},
]
`let bbb = ['0001','0002','0003']`

将他们运用到element的选择器中,依据bbb中选择的数据,想将格式转成

[   
    {value:'0001',label:'图片1'},
    {value:'0002',label:'图片2'},
    {value:'0003',label:'图片3'},
]

我想过运用map,但不知道如何返回修改key值的对象

 aaa.forEach(item=>{
    bbb.map(({key,label}) => {
        if(item===key){
            return {}
        }
    })
})

请教各位如何实现


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
 var result = aaa.filter((item)=>{
        if(bbb.indexOf(item.key)!=-1){
            return {value:item.key,label:item.lebel}
        }
    })

另外你的map函数的使用方式有误。参数形式不对。
..............
上面我把filter用法搞错了,filter只能返回数组的原始数据,
正确答案更改为如下

     var result = aaa.filter((item)=>{
            return bbb.indexOf(item.key)!=-1
        }).map((item)=>{
             return {value:item.key,label:item.lebel}
        })

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to MLink Developer Q&A Community for programmer and developer-Open, Learning and Share
...