2 Star 0 Fork 0

何志龙/ruoyi_admin_vue

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
1.js 2.00 KB
一键复制 编辑 原始数据 按行查看 历史
lliay 提交于 2024-10-17 13:59 . bugh
/** *
* 题目1: 解析Cookie字符串转化为对象 * 输入:'foo=bar; equation=E%3Dmc%5E2' * 输出:{ foo: 'bar', equation: 'E=mc^2' } *
* 测试: parseCookie('foo=bar; equation=E%3Dmc%5E2') */
function parseCookie(str) {
let obj = {}
let arr = str.split(';');
for ( let i of arr) {
const [ key , value ] = i.split("=");
obj[key] = decodeURIComponent(value);
}
return obj;
}
// console.log(parseCookie('foo=bar; equation=E%3Dmc%5E2'))
/** *
* 题目2: 找出对象中符合要求的项 * 输入: 原始对象:{ a: 1, b: '2', c: 3 },
* 筛选条件:x => typeof x === 'string' * 输出:{ 'b': '2' } *
* 测试: pickBy({ a: 1, b: '2', c: 3 }, x => typeof x === 'string') */
function pickBy(obj, fn) {
let reulst = {} //存放结果的
for(let i in obj){
if(fn(obj[i])){
reulst[i] = obj[i]
}
}
return reulst;
}
// console.log(pickBy({ a: 1, b: '2', c: "3" }, x => typeof x === 'string'))
/** *
* 题目3:合并多个对象 *
* 输入:{ a: [1,2,3], b: { name: 'b'} }, { a: [4], b: { age: 18 } } * 输出:{ a: [1,2,3,4], b:{name:'b', age: 18}} *
* 测试: merge({ a: [1,2,3], b: { name: 'b'} }, { a: [4], b: { age: 18 } }) */
let a = {
a: [1,2,3],
b: { name: 'b'}
}
let b = {
a: [4],
b: { age: 18 }
}
function merge(...objs) {
const reulst = {}
console.log(objs)
objs.forEach(item=>{
for(let i in item){
//需要先判断是不是数组
if(Array.isArray(item[i])&& Array.isArray(reulst[i])){
reulst[i] = reulst[i].concat(item[i])
}else if(typeof item[i] === 'object'&& !Array.isArray(item[i])){
//不是数组是对象的时候 需要递归处理是不是还有数组
reulst[i] = merge(reulst[i],item[i])
}else {
reulst[i] = item[i]
}
}
})
return reulst;
}
console.log( merge({ a: [1,2,3], b: { name: 'b'} }, { a: [4], b: { age: 18 } }))
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/he_zhi_long5211/ruoyi_admin_vue.git
git@gitee.com:he_zhi_long5211/ruoyi_admin_vue.git
he_zhi_long5211
ruoyi_admin_vue
ruoyi_admin_vue
master

搜索帮助