我又来请教一个方法了。 掩面哭泣
const list = {
email: {
a: {
big: {
rule: ['abig'],
isShow: true,
extends: []
},
small: {
rule: ['asmall'],
isShow: false,
extends: []
}
},
b: {
big: {
rule: ['bbig'],
isShow: true,
extends: []
},
small: {
rule: ['bsmall'],
isShow: false,
extends: []
}
},
},
qq: {
a: {
big: {
rule: ['abigqq'],
isShow: true,
extends: []
},
small: {
rule: ['asmallqq'],
isShow: false,
extends: []
}
},
b: {
big: {
rule: ['bbigqq'],
isShow: true,
extends: []
},
small: {
rule: ['bsmallqq'],
isShow: false,
extends: []
}
},
},
}
比如说 我传入了 a big 那么就取 qq 和 email 下 a => big 里面的转化成下面格式的 对象
const data = {
rule: {
email: ['abigemail'],
qq: ['abigqq']
},
ishow: {
email: true,
qq: false
},
extends: {
email: [],
qq: []
}
}
让后端按要求返回数据
别搞 IT 了吧,找个厂打螺丝吧
function getCustomData(a, b) {
let data = {}
for (let item in list) {
for (let key in listitem[b]) {
data[key] = {
...data[key],
}
}
}
return data
}
console.log(getCustomData('a', 'big'))
用 proxy 最方便。
絮我直言,为什么一个 map/dict 的变量是 list
看以往发帖记录,应该木材厂😂
假设你用的是 js ,导入 lodash 后
{
rule: {
email: _.get(list,'email.a.big.rule'),
qq: _.get(list,'qq.a.big.rule')
},
isShow: {
email: _.get(list,'email.a.big.isShow'),
qq: _.get(list,'qq.a.big.isShow')
},
extends: {
email: _.get(list,'email.a.big.extends'),
qq: _.get(list,'qq.a.big.extends')
}
}
找个场,剪视频吧
哈哈哈哈😂你的工资是由 V 友支撑起来的吗?
const convert = (data) => {
const result = {};
const keysLevel1 = Object.keys(data);
keysLevel1.forEach(k1 => {
console.log(k1, 'k1');
const keysLevel2 = Object.keys(data[k1]);
keysLevel2.forEach(k2 => {
console.log(k2, 'k2');
const keysLevel3 = Object.keys(datak1);
if (!result[k2]) result[k2] = {};
keysLevel3.forEach(k3 => {
console.log(k3, 'k3');
const keysLevel4 = Object.keys(datak1[k3]);
if (!resultk2) resultk2 = {};
keysLevel4.forEach(k4 => {
if (!resultk2[k4]) resultk2[k4] = {};
resultk2k4 = datak1k3;
})
})
})
});
return result;
};
木材厂是哪个?
找个厂上班吧。。。
v2 的回复也变得低龄化了吗?
别人学习的问题,好好回复不就行了,不懂可以不回,嘲笑别人可以满足你的优越感?
《请尽量让自己的回复能够对别人有帮助》
#14
《提问的智慧》
github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/main/README-zh_CN.md
你要求每一个人提问前先掌握这些东西? op 已经 show code ,问题也很简单,难道还不够是吗,你的意思是问题没提好应该进厂吗
说实在的,让后端重新给你处理一下,比你在这里琢磨更快。
后端返回这种格式的数据是很简单的。
#16
我什么也没说啊……你是不是认错了,我只是贴出一个《提问的智慧》,你觉得楼主做得符合这个指南,那就没事呗
楼主这不像是问问题,这都是最基本的操作,不好说有什么问的必要。
像是什么呢?代为完成个人任务。
这可不受欢迎。
😅 你回复我,让我以为 op 没有做到「提问的智慧」,所以就可以被嘲笑进厂呢
呵呵,这也不至于嘲笑进厂这种地步吧
首先这问题也太简单了,就是一个 js 对象里面的元素查看的问题。以后如果大家都把最简单的问题拿来问,比如 hello,world 级的问题拿来问,这不是好事。我认为但凡把书好好看看,把学习视频学习下,不至于这么问。
其次上面的那个 “v2 的回复也变得低龄化了吗?
别人学习的问题,好好回复不就行了,不懂可以不回,嘲笑别人可以满足你的优越感?
《请尽量让自己的回复能够对别人有帮助》” 的指责,没看出他的“回复”对楼主有帮助,也没看出他的“回复”对非楼主有帮助 ,所以,这是一个“自己做不到的人指责别人做不到”?
你的回复...对他有什么帮助???
???
虽然这个题确实傻
但 v 站一直以来又嘲笑新人的“传统”,这很不好
我当年也问过很多傻问题,这一路走来,也确实不易
谁都不是娘胎出来就带着一个 CS 学位的,还请某些人手下留情,积点口德比较好
嘲笑是不对,
但随便问问题就是对的?
你也知道这问题“傻”,
楼主自己也知道这问题“傻”,(看楼主的标题)
为什么还要问这样的问题?
浪费大家时间?
像楼主这样的明知道不是正确的做法还来做的,为什么不能嘲笑?真的想好好解决问题,要么好好自学,要么花点成本现实在用”钞能力“来解决(找个老师或者培训班或者专人指导),现在搁这是打算自己不努力来白嫖?
笑了。这么多人说楼主傻的,结果只有八楼能给一个合适的答案,其他的写法都很累赘
首先我感觉这个应该由后端来处理。
其次如果你处理的话,这能 each 遍历或者 filter 过滤。 没有什么好办法。
最好还是由后端来处理。
问题感觉没有描述很清楚,传入 a big 是啥意思呢,可以更详细一点描述,方便解决问题
发表一些感触,看到楼主问题也想到曾经自己也啥都不懂,学电子专业出身,代码也是照着书一点点学,一点点验,知道一开始的不容易。现在工作了几年后看到 V2 上还是氛围那么好,程序员是一个很单纯的群体,没有弯弯绕绕,大部分争执也在于论技术,挺温暖的一个群体
活捉嘤嘤怪
我的帮助体现在改善环境,别动不动就开始嘲笑。那你的回复对我有什么帮助呢?
最后说一句,楼主这个帖子对我挺有帮助的,让我 b 了这些人。避免我以后发帖得到的回复都是嘲笑劝退的消极评论😅
???
你除了放了个地图炮你改善什么了?
???突然疑惑
你想改善环境难道不应该从自己认真回答贴主所询问的问题开始吗?
???
网上很多这样的网民,自己站在道德高点,抨击别人,满足自己的”道德欲望“。。。
如果真的让他像雷锋一样无私奉献,他会干么?
#2 有点儿复杂,不过还是写出来了。
var getAttr = function (obj, paths) {
let value = obj;
for (let i = 0; i < paths.length; i++) {
value = value[paths[i]];
}
return value;
};
var rebuild = function (dict, paths) {
// key: email, qq
const pairs = Object.keys(dict).map((key) => {
const obj = getAttr(dict[key], paths);
return [key, obj];
});
console.log("----", pairs);
return pairs.reduce((merged, prev) => {
// prev: ['email', {'rule', 'isShow', extends}]
// merged: ['rule', {'email', 'qq'}]
console.log("--- prev", prev);
Object.entries(prev[1]).forEach(([k, v]) => {
merged[k] = merged[k] || {};
mergedk] = v;
});
return merged;
}, {});
};
// TESTING:
getAttr(list, ["email", "a", "big", "isShow"]); // true
rebuild(list, ["a", "big"]);
// {
// rule: {
// email: ["abig"],
// qq: ["abigqq"],
// },
// isShow: {
// email: true,
// qq: true,
// },
// extends: {
// email: [],
// qq: [],
// },
//
当前现状 小米锁 BL 恶政,放弃 1+ 可以解锁但是无法刷海外系统/原生系统 未来还有哪个手机能成为刷机小王子? 价格不贵,性能过得去,类比当前红米 K 系列 开源内核…
比如用户正在访问我的项目,然后我发布代码更新版本,想知道如何在用户不点击刷新或者不重开网页的情况下让用户获取最新版本代码? 使用 websocket 与服务器保持连接,然后监…
我是 Victor Teo ,开源项目 Teo 的作者。在 2012 年进入软件技术领域,从事后端前端移动端技术的研究和创新,态度端正、勤劳刻苦、脚踏实地。十余年深刻实践总结和…