gpt4 book ai didi

javascript - jQuery - 如果 array.filter 失败则显示消息?

转载 作者:行者123 更新时间:2023-11-28 02:42:31 25 4
gpt4 key购买 nike

我正在制作一个 jQuery 控制台,并使用一个充满可用命令的数组来验证用户的输入 - 例如,如果他们输入 help,如果 help 位于 array.name 中,然后继续执行下一段代码。

问题是,当 filter 完全失败时,我想显示一条消息,例如“该命令不存在”,因为 help 不在数组中根本不。这是到目前为止我的代码:

var commands = [
{ 'name': 'help',
'desc': 'display information about all available commands or a singular command',
'args': 'command-name' },
{ 'name': 'info',
'desc': 'display information about this console and its purpose' },
{ 'name': 'authinfo',
'desc': 'display information about me, the creator' },
{ 'name': 'clear',
'desc': 'clear the console' },
{ 'name': 'opensite',
'desc': 'open a website',
'args': 'url' },
{ 'name': 'calc',
'desc': 'calculate math equations',
'args': 'math-equation' },
{ 'name': 'instr',
'desc': 'instructions for using the console' }
];

function detect(cmd) { // function takes the value of an <input> on the page
var cmd = cmd.toLowerCase(); // just in case they typed the command in caps (I'm lazy)

commands.filter(function(command) {
if(command.name == cmd) {
switch(cmd) {
// do stuff
}
}
else {
alert("That command was not found."); // this fires every time command.name != cmd
}
}
}

如果需要的话,我有一个 jsFiddle ,其中包含(几乎)所有代码。

http://jsfiddle.net/abluescarab/dga9D/

每当未找到命令名称时,else 语句就会触发——次数很多,因为它循环遍历数组。

如果使用过滤器时在数组中找不到命令名称,是否有办法显示消息?

提前致谢,如果我没有理解和代码墙,我深表歉意,并且我愿意接受其他方法的建议。

最佳答案

function get_command(command_name) {

var results = {};
for (var key in commands) (function(name, desc, command) {

if (name == command_name) (function() {

results = command;
}());

}(commands[key]["name"], commands[key]["desc"], commands[key]));

return (results);
};

get_command("help");

而不是切换是尝试过滤方法功能:

commands.filter = (function(command, success_callback, fail_callback) {

if (get_command(command)["name"]) (function() {

success_callback();
}());

else (function() {


fail_callback();
}());
});


commands.filter("help", function() {

console.log("enter help command source :)");
}, function() {

console.log("hey help command???");
});

放轻松。

关于javascript - jQuery - 如果 array.filter 失败则显示消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12460048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com