所以我有这样一个变量:
var userdata = {
luk: {
username: 'luktvpl',
dcid: '53764947549426666',
password: '',
email: 'luk@...',
xp: '0',
lastwork: '',
lastmessage: '',
lastmailcode: '',
inventory: [ 'staff1', 'kawa' ],
statusy: {},
osiagniecia: {},
pety: {},
UUID: 'k9-bf7hhhcee-ffcb4fececb8',
IdBezpieczenstwa: ''
},
luk2: {
username: 'luktvpl2',
dcid: '53764947444666',
password: '',
email: 'luk@...',
xp: '0',
lastwork: '',
lastmessage: '',
lastmailcode: '',
inventory: [ 'staff4', 'kawa' ],
statusy: {},
osiagniecia: {},
pety: {},
UUID: 'k9-bf71-hee-ffcb4fececb8',
IdBezpieczenstwa: ''
}
};我想搜索这个变量以寻找用户,例如uuid:"k9-bf71-hee-ffcb4fececb8“或使用dcid : 53764947549426666,我如何在node.js中这样做,并希望它返回用户(luk/luk 2)
发布于 2022-03-02 20:34:35
为此使用对象析构。
let valuesToFind = ["53764947549426666", "k9-bf71-hee-ffcb4fececb8"];
const keys = Object.keys(userData);
keys.forEach((key, index) =>{
const {dcid, UUID} = userData[key];
if(dcid == valuesTofind[0] || UUID == valuesToFind[1]){
console.log(`Found user ${userData[key}`);
}
})发布于 2022-03-02 21:09:09
在我的解决方案中,我从一个对象内部的所有对象获得键。然后迭代键并检查UUID或dcid是否在对象中。然后,我检查这个键的值是否等于搜索字符串/ id。
const userdata = {
luk: {
username: 'luktvpl',
dcid: '53764947549426666',
password: '',
email: 'luk@...',
xp: '0',
lastwork: '',
lastmessage: '',
lastmailcode: '',
inventory: [ 'staff1', 'kawa' ],
statusy: {},
osiagniecia: {},
pety: {},
UUID: 'k9-bf7hhhcee-ffcb4fececb8',
IdBezpieczenstwa: ''
},
luk2: {
username: 'luktvpl2',
dcid: '53764947444666',
password: '',
email: 'luk@...',
xp: '0',
lastwork: '',
lastmessage: '',
lastmailcode: '',
inventory: [ 'staff4', 'kawa' ],
statusy: {},
osiagniecia: {},
pety: {},
UUID: 'k9-bf71-hee-ffcb4fececb8',
IdBezpieczenstwa: ''
}
};
let results = [];
const toSearch = "53764947444666";
Object.keys(userdata).forEach(ob => {
for(key in userdata[ob]) {
if(key === 'dcid' || key === 'UUID') {
if(userdata[ob][key].indexOf(toSearch)!=-1) {
results.push(userdata[ob]);
}
}
}
})
console.log("result", results)
发布于 2022-03-02 21:16:55
我想出来了。我应该是这样的:
//variable with data
var userdata = {
luk: {
username: 'luktvpl',
dcid: '53764947549426666',
password: '',
email: 'luk@...',
xp: '0',
lastwork: '',
lastmessage: '',
lastmailcode: '',
inventory: [ 'staff1', 'kawa' ],
statusy: {},
osiagniecia: {},
pety: {},
UUID: 'k9-bf7hhhcee-ffcb4fececb8',
IdBezpieczenstwa: ''
},
luk2: {
username: 'luktvpl2',
dcid: '53764947444666',
password: '',
email: 'luk@...',
xp: '0',
lastwork: '',
lastmessage: '',
lastmailcode: '',
inventory: [ 'staff4', 'kawa' ],
statusy: {},
osiagniecia: {},
pety: {},
UUID: 'k9-bf71-hee-ffcb4fececb8',
IdBezpieczenstwa: ''
}
};
//function for searching
function DbGetBy(what,data) {
//generate array
const keys = Object.keys(userdata);
//look for user with "what" that have value "data"
return keys.find((key,index)=>userdata[key][what]== data);
};
//search for uuid : k9-bf7hhhcee-ffcb4fececb8
console.log(DbGetBy("UUID","k9-bf7hhhcee-ffcb4fececb8"));https://stackoverflow.com/questions/71328654
复制相似问题