Javascript 如何通过检查键筛选对象
我有数组对象,如果键不匹配,我想删除一些内部对象 输入:Javascript 如何通过检查键筛选对象,javascript,node.js,lodash,Javascript,Node.js,Lodash,我有数组对象,如果键不匹配,我想删除一些内部对象 输入: "configuration" : { "11111-2222-3333-444--5555" : { "home1" : { "tel" : "125", "address" : true, } }, "2222-3333-44444-5555--66666" : {
"configuration" : {
"11111-2222-3333-444--5555" : {
"home1" :
{
"tel" : "125",
"address" : true,
}
},
"2222-3333-44444-5555--66666" : {
"home2" :
{
"tel" : "125",
"address" : true,
}
}
}
我有一个匹配字符串11111-2222-3333-444--5555
预期结果如下:
"configuration" : {
"11111-2222-3333-444--5555" : {
"home1" :
{
"tel" : "125",
"address" : true
}
}
}
您可以循环浏览键并删除不需要的键:
let o = {
configuration: { /* etc. */ }
}
for(let key in o.configuration) {
if(key !== '11111-2222-3333-444--5555') {
delete o[key]
}
}
但是,如果要删除除一个键以外的所有键,则这是不必要的。要简化它,您可以执行以下操作:
let newObject = {
configuration: {
'11111-2222-3333-444--5555': o.configuration['11111-2222-3333-444--5555']
}
}
使用\uuu.pick()
获取所需的密钥:
var data={“配置”:{“11111-2222-3333-444-5555”:{“home1”:{“tel”:“125”,“address”:true}},“2222-3333-44444-5555-66666”:{“home2”:{“tel”:“125”,“address”:true}}};
var searchKey='11111-2222-3333-444--5555';
var结果={
配置:u.pick(data.configuration,searchKey)
};
控制台日志(结果)代码>
它不是一个对象数组。它只是一个有多个键的对象。可能重复-那么对于一个特定键?你可以做{'configuration':{'11111-2222-3333-444-5555':原始['configuration']['11111-2222-3333-444-5555']}
@thomas:如果你觉得这个答案有用,请点击灰色按钮接受它✓.