前端笔试题

面试题1const data = [
	  ['2022/2/28', '雨'], 
	  ['2022/2/26', '晴'], 
	  ['2022/2/27', '阴'], 
	  ['2022/2/26', '运动'],
	  ['2022/2/28', '工作']
];  
转化成:
const resData = [{
	  time: '2022/2/26',
	  weather: '晴',
	  thing: '运动'
	},{
	  time: '2022/2/27',
	  weather: '阴',
	  thing: '暂无'
	},{
	  time: '2022/2/28',
	  weather: '雨',
	  thing: '工作'
}]
第一种写法
		
   const thingList = ['运动', '工作'];
   const weatherList = ['雨', '晴', '阴'];

   // 默认初始给一个对象数据
   const testObj = {};

   // 给一个外壳 实现数组
   const dataList = [];

   // 每次按照一组去给数据
   data.forEach(([item, value]) => {
   
   // 用时间作为键,创建一组数据
   if (!testObj[item]) {
       testObj[item] = {}
   }
 
   if (thingList.some((item) => item === value)) {
        testObj[item].thing = value;
    }
    
    if (weatherList.some((item) => item === value)) {
        testObj[item].weather = value;
    }
})

    for (var i in testObj) {
    // 这组数据没有天气、事情键时,添加并设置值为暂无
    if(!('thing' in testObj[i])){
    testObj[i].thing = '暂无';
    }
    if(!('weather' in testObj[i])){
    testObj[i].weather = '暂无';
    }
    // 把每组数据转换成对象,加入输出的数组
    dataList.push({ item: i, ...testObj[i], })
}

	console.log('dataList', dataList);
 const data = [
       ['2022/2/28', '雨'],
       ['2022/2/26', '晴'],
       ['2022/2/27', '阴'],
       ['2022/2/26', '运动'],
       ['2022/2/28', '工作']
      ];
       let resData = []
       
	   data.forEach(item => {
       let obj= resData.find(res => {
           if(res.time === item[0]){
                return res
            }
        })

        if(obj === undefined){
            obj = {}
            obj['time'] = item[0]
            if (item[1].length === 1) {
            // weather
            obj['weather'] = item[1]
            }else {
            // thing
            obj['thing'] = item[1]
            }
            resData.push(obj)
            return
        }else {
            if (item[1].length === 1) {
            // weather
            obj['weather'] = item[1]
            }else {
            // thing
            obj['thing'] = item[1]
            }
        }
	})

	resData.forEach(res => {
 	if(res.thing === undefined || res.thing === '' ) {
    	res['thing']= '暂无'
  	}
})
console.log('bingo==>',resData)
面试题2const data = [
      {"CN": "cn"},
      {"EN": "en"},
      {"OK": "ok"}
 ]
转换成
const resData = [
	{key: 'CN', value: 'cn'},
	{key: 'EN', value: 'en'},
	{key: 'OK', value: 'ok'}
]
使用reduce来进行操作
const aa = data.reduce((acc, cur) => {
    var ob = {}
    var c = JSON.stringify(cur).replaceAll('"','').replace('{', "").replace('}', "").split(":")
    ob["key"] = c[0]
    ob["value"] = c[1]
    acc.push(ob)
    return acc
}, []);
console.log(aa)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值