一个后端朋友发出来的两道面试题,说是考察正排索引和倒排索引的算法(我朋友面试的是大数据),想着用js来试解,废话不多说,上题
看题目对于前端同学来说没有读取本地txt文件的方法(nodeJS除外),所以我们暂且把数据源作为一个对象数组来处理:
格式如下:
let obj = {'001':['aaa','bbb','ccc','ddd'],'002':[ 'fff','eee','ccc'],'003':['www','eee','ccc'],'004':['aaa','uuu','ddd']}
说下大概思路:把对象数组转成二维数组,然后再转一维数组
let arr = [];
let Values = Object.values(obj)
let Keys = Object.keys(obj)
Values.forEach(item=> {//二维变一维数组
arr.push(...item)
})
let Arr = [...new Set(arr)];//去重
遍历对比
Arr.forEach(item=>{//循环遍历
Obj[item] = []
Values.forEach((valItem,index)=>{
if(valItem.includes(item)){
Obj[item].push(