一、对象以字符串形式输入,还有形如ca.cs.ced的字符串输入。实现一个返回链式取值的函数。
比如
{ 'ca':{ cs:{ ced:'content' } } } 输入 “{'ca':{cs:{ced:'content'}}} ca.cs.ced” 输出 ‘content’
代码来不及复制,思路就是JSON.parse,然后while循环key='ca.cs.ced'.split('.')数组。不断更新obj=obj[key[i]],就好了。运气好,一遍过,所以没深究。
二、蓝虎红虎玩游戏,第几轮赢的就就获得几分。输入x,y,求输出蓝虎至少赢了几轮。骗75%
案例:7 21 输出 1
说实话,题目没太看懂,没时间了。然后直接分别输出1 2 3 -1 发现 各通过 12.5 37.5 25 12.5.然后挨个试. 骗了75%
str=await read_line().split(" ") if(str[0]=6|7|8) console.log(2) else if(str[0]=14|15) console.log(3) else console.log(-1)
这里发现x=6时 输出1或者2 都对。所以没太懂这题。
三、去除对象或者数组中,null、false、0的部分。对象数组都是可以嵌套的。乱写的,竟然A100%,也是一遍过。
const rl = require("readline").createInterface({ input: process.stdin }); var iter = rl[Symbol.asyncIterator](); const readline = async () => (await iter.next()).value; void (async function () { let obj = JSON.parse(await readline()); function digui(aobj) { if (!aobj) return; if (Array.isArray(aobj)) { let newArr = []; aobj.forEach((el) => { newArr.push(digui(el)); }); return newArr.filter((el) => { if (el) return true; else return false; }); } if (aobj instanceof Object) { let newObj = {}; for (i in aobj) { newObj[i] = digui(aobj[i]); } for (let key in newObj) { if (newObj[key] === undefined) { delete newObj[key]; } } return newObj; } return aobj; } console.log(JSON.stringify(digui(obj))); })();#途虎##算法##笔试#