如何在不显示JS函数返回消息的情况下获取键值对 [英] How can I get key-value pair(s) without displaying function return message in JS
问题描述
我有一个嵌套对象,如:
I hava a nested object like:
let menu = {
vegetarian: {
vegStarter: {
plainPizza: 100,
redChilliPizza: 150,
cheesePizza: 200,
capsicumPizza: 160,
onionPizza: 200,
},
vegMainCourse: {
pepperoniPizza: 150,
mushroomsPizza: 160,
extraCheesePizza: 250,
blackOlivesPizza: 220,
greenPeppersPizza: 180,
}
},
nonVegetarian: {
nonVegStarter: {
supremeMeatPizza: 100,
meatPizza: 130,
meatLoversPizza: 160,
chickenPizza: 200,
chilliMeatPizza: 200
},
nonVegMainCourse: {
butterMeatPizza: 220,
spicyChickenPizza: 170,
seafoodPizza: 300,
spinachEggPizza: 200,
eggPizza: 250,
}
}
}
这是我对函数的输入:
let getSearchTermtoFindByNameFromNonVegMainCourse = "spinachEggPizza";
下面是函数:
function searchUsingNameFromNonVegMainCourseCategory(mainObject, getSearchTermtoFindByNameFromNonVegMainCourse) {
let arrOfNonVegMainCourseKeys = [];
Object.keys(mainObject).forEach(key => {
if (getSearchTermtoFindByNameFromNonVegMainCourse === ' ') {
alert("Enter Valid Value.")
} else {
if (key !== getSearchTermtoFindByNameFromNonVegMainCourse) {
} else {
if (key === getSearchTermtoFindByNameFromNonVegMainCourse && typeof mainObject[key] !== "object") {
arrOfNonVegMainCourseKeys = key;
document.write(arrOfNonVegMainCourseKeys + " : " + mainObject[key] + "<br>");
} else {
if (typeof mainObject[key] === "object") {
searchUsingNameFromNonVegMainCourseCategory(mainObject[key], getSearchTermtoFindByNameFromNonVegMainCourse, arrOfNonVegMainCourseKeys)
}
}
}
}
}); return document.write("No Match Found.");
}
searchUsingNameFromNonVegMainCourseCategory(menu.nonVegetarian.nonVegMainCourse, getSearchTermtoFindByNameFromNonVegMainCourse);
我想设置找不到匹配项.
仅当输入在函数中不匹配时.我的代码可以正常工作,但是对于匹配的输入,它也显示 No Match Found
.结果我不想明显显示.这是上面编写的代码的输出:
I want to set No Match Found.
only when an input gets mismatch in a function. My code is working fine for the same But for a matched input also it's displaying No Match Found.
with result which I don't want to show obviously. Here's the output of above written code:
spinachEggPizza : 200
No Match Found.
但是我只希望将 spinachEggPizza:200
显示为输出.
But I want only spinachEggPizza : 200
to show as output.
我这边出了什么问题?
推荐答案
这是因为您总是返回" document.write(未找到匹配项").在功能块底部,您可以设置在条件条件else块中打印该消息:
That's because you are always returning ""document.write("No Match Found.")"" at the bottom of function block, you can set to print that message inside a conditional else block:
if (getSearchTermtoFindByNameFromNonVegMainCourse === ' ') {
alert("Enter Valid Value.")
} else {
if (key !== getSearchTermtoFindByNameFromNonVegMainCourse) {
} else {
if (key === getSearchTermtoFindByNameFromNonVegMainCourse && typeof mainObject[key] !== "object") {
arrOfNonVegMainCourseKeys = key;
document.write(arrOfNonVegMainCourseKeys + " : " + mainObject[key] + "<br>");
} else {
if (typeof mainObject[key] === "object") {
searchUsingNameFromNonVegMainCourseCategory(mainObject[key], getSearchTermtoFindByNameFromNonVegMainCourse, arrOfNonVegMainCourseKeys)
}
}
} else {
document.write("No Match Found.")
}
});
}
这篇关于如何在不显示JS函数返回消息的情况下获取键值对的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!