js根据标识替换数组里面的元素?

我会得到一个数组,如:[1,2,3,4,7,9,10],然后1对应的是苹果,2对应的是西瓜,3对应的榴莲。。。
我暂时想到的方法就是:

        let arr = this.checkboxGroup1
        for(let k in arr){
            if(arr[k] == 1){
                arr[k] = '苹果'
            }else if(arr[k] == 2){
                ....
            }
            ....
        }
        

实际上我这个数组可能有20个元素,这么写会麻烦,请大神指教一下简单的方法

最后的要求是得到一个纯水果的数组用于展示

阅读 5.7k
3 个回答

先做关系映射:

const map = {
    1: '苹果',
    2: '西瓜',
    3: '榴莲',
    ...
}

然后转换

let result = arr.map(_ => map[_])
    // 假设存在映射关系:
    obj = {
        1: 'fruit1',
        2: 'fruit2',
        //  指代水果的属性名<键>: 水果<值>
    }
    通过下面的方法取得 键 对应的 值:
    var fruits = obj => Object.keys(obj).map(key => obj[key])
    fruits(obj); // ['fruit1', 'fruit2', ...]
let tag={
    "1":"苹果",
    "2":"西瓜",
    "3":"榴莲"
}
let arr=[1,2,3]
for(let i=0;i<arr.length;i++){
    console.log(arr[i]+":"+tag[arr[i]])
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题