如何在不显示JS函数返回消息的情况下获取键值对 [英] How can I get key-value pair(s) without displaying function return message in JS

查看:47
本文介绍了如何在不显示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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆