JS根据key值筛选出另外一个数组的元素

95 阅读1分钟

首先讲讲最常见的应用场景

我们在表单中选择了一些选项(取 label 值展示),传给后台保存,其实是保存的是对应的 value 值或 key 值。从后台接口获取时自然也是 value 值或 key 值,如果是多选,还会是这些 value 值或 key 值组成的一个数组或字符串。

那我们如何根据后台返回的这些value值或key值,找出对应的label去展示呢?

const options = [{
    value: 'orange',
    label: '橙子'
},{
    value: 'apple',
    label: '苹果'
},{
    value: 'banana',
    label: '香蕉'
},{
    value: 'waterlemon',
    label: '西瓜'
}];

// 接口返回的 value 值
const array = ['orange', 'waterlemon'];
// const string = "orange, waterlemon";

const res = options.filter(option => {
    array.includes(option.value);
    // string.includes(option.value);
})
console.log(res); // [{value: 'orange', label: '橙子'}, {value: 'waterlemon', label: '西瓜'}]

const strRes = res.map(item => item.label).join('、'); // 橙子、西瓜