代码拉取完成,页面将自动刷新
/** *
* 题目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 } }))
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。