我从用户那里获取他对 json 代码中某些类别的偏好,例如:
{
"sport" : {
"tennis": "5",
"running": "4",
"swimming": "5"
},
"study" : {
"history" : "0"
}
}
我希望为每个首选项在“userPreferences”对象中创建自己的字段。
这是我写下的代码,但我看不出这里的错误是什么
exports.reduceUserPreferences = (data) => {
let userPreferences = {};
data.forEach(category => {
category.forEach(preference => {
category_preference_name = category.string + "_" + preference.string;
if (!isEmpty(preference.trim())) userPreferences.category_preference_name = preference;
});
});
//if (!isEmpty(data.tennis.trim())) userPreferences.sport_tennis = data.tennis;
//if (!isEmpty(data.swimming.trim())) userPreferences.sport_swimming = data.swimming;
//if (!isEmpty(data.running.trim())) userPreferences.sport_running = data.running;
//if (!isEmpty(data.history.trim())) userPreferences.study_history = data.history;
return userPreferences;
};
我希望“”对象具有所有首选项的字段以及它们所属的类别。
我不明白我做错了什么,我在这段代码上徘徊了几个小时。
添加示例
我有另一个与这个函数类似的函数,输入相似,输出相似。例如输入:
{
"bio": "hello there",
"website": "",
"location": "los angles"
}
示例函数:
exports.reduceUserDetails = (data) => {
let userDetails = {};
if (!isEmpty(data.bio.trim())) userDetails.bio = data.bio;
if (!isEmpty(data.website.trim())) {
// https://website.com
if (data.website.trim().substring(0, 4) !== 'http') {
userDetails.website = `http://${data.website.trim()}`;
} else userDetails.website = data.website;
}
if (!isEmpty(data.location.trim())) userDetails.location = data.location;
return userDetails;
};
输出将是: 一个具有所有首选项属性及其值的对象。
我正在寻找带有嵌套循环的示例,但找不到。
吃鸡游戏
相关分类