vue遍历替换数组

首先,有这样一段数据

list['zhangsan','lisi','wangmazi']
people[
  {
    name: 'zhangsan',
    username: '张三'
  },{
    name: 'lisi',
    username: '李四'
  },{
    name: 'wangmazi',
    username: '王麻子'
  }
]

那么问题来了,怎么list里面的数据全部替换成people中相对应的汉字人名呢?

阅读 6.2k
3 个回答
list = list.map(item => {
        people.forEach(ele => {
          if (item === ele.name) {
            item = ele.username
          }
        })
        return item
      })
const list = ['zhangsan','lisi','wangmazi'];
const people = [
    {
        name: 'zhangsan',
        username: '张三'
    },{
        name: 'lisi',
        username: '李四'
    },{
        name: 'wangmazi',
        username: '王麻子'
    }
];

let set = new Set(list);

const newList = people.map(e => {
    for (let item of set.values()) {
        return item = e.username
    }
});

console.log(newList)

这样的话,可以直接reduce people对象数组,根据list中的name获取相应username,然后把list直接指向reduce生成的新username list
额 献丑一下,因为最新刚学了reduce

let userNames = []
people.reduce((accumulator, currentValue) => {
    if (list.indexOf(currentValue.name) !== -1) {
        accumulator.push(currentValue.username)
    }
    return accumulator
  }, userNames
)
list = userNames
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题