有没有更有效/简洁/雄辩的方法来写这个:
else if ((aInd === 3)||(aInd === 7)||(aInd === 9)||(aInd === 19)
letter = alphabet[aInd + 1].toUpperCase();
是否有任何有效的语法
if (a === (3 || 7 || 13 || 19) {do this}
... 或者,与一组具有| |逻辑的布尔表达式相比,您可以更简洁地对单个变量的值集进行分组?
背景:初级程序员,通过一个基本的密码挑战coderbyte,需要采取一定的行动(大写),如果字母是元音。出于简单的原因(因为它在程序的其他地方使用),我声明了一个数组字母表,其中包含字符串形式的每个字母a-z。cypher还将每个字母1移到右边,因此成为元音的字母的字母索引是3、7、13和19。aInd代表字母表中字母的索引。
完整代码:
function letterChanges(str) {
var alphabet = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'];
var words = str.toLowerCase().split(' '), senArray = words.map(function(word) {return word.split('')});
senArray.forEach(function(word) {
word = word.filter(function(letter, index, word) {
if ((Boolean(alphabet.indexOf(letter))) === false) return false;
else return true;
});
});
senArray[0].map(function(letter) {
var aInd = alphabet.indexOf(letter);
switch (aInd) {
case 25:
letter = alphabet[aInd].toUpperCase();
break;
case (3 || 7 || 13 || 19):
letter = alphabet[aInd + 1].toUpperCase();
console.log(letter);
break;
default:
letter = alphabet[aInd + 1];
break;
}
return letter;
})
return senArray.map(function(word) {
return word.map(function(letter) {
var aInd = alphabet.indexOf(letter);
if (aInd === 25) {letter = alphabet[aInd].toUpperCase();}
else if ((aInd === 3)||(aInd === 7)||(aInd === 13)||(aInd === 19)) {letter = alphabet[aInd + 1].toUpperCase();}
else {letter = alphabet[aInd + 1];}
return letter;
}).join('');
}).join(' ');
}
letterChanges("Input string goes here.");
将值作为数组传递,并检查indexOf
。
就你而言,
if ([3, 7, 13, 19].indexOf(aInd) > -1) {
letter = alphabet[aInd + 1].toUpperCase();
}
我正在开发一个java程序,它接受输入的分数,给出输入的总数和平均值,但是我很难计算出如何获得当前输入的最高分数“我使用了大量嵌套的else-if语句,但必须有一种简单的方法来实现这一点,而不是键入100个else-if语句这是我的代码。我在else-if语句开始的地方添加了一条注释,以确定最高级别
我做这个迭代是为了对DataFrame的每个值执行不同的函数: 作为xxx一个2列数据帧
问题内容: 这实际上可能是一个愚蠢的问题,但我想知道是否有可能使用if语句执行所有条件。我解释: 当所有三个方法都返回true时执行。关键是,当一个方法返回false时,其余方法将不会执行。这通常对性能而言是一件好事,但是如果我真的需要独立于所有方法返回的值来执行所有方法,然后对表达式求值并进入if与否,该怎么办?同样适用于OR或其他 有没有一种方法可以告诉Java采取这种方式?我目前的解决方法是
我试图通过对println语句使用循环来缩短代码。不打印名称和高度的单独语句,是否有其他方法使用相同的格式进行此操作?:
在Python 2中,可以将任意可调用函数转换为类的方法。重要的是,如果可调用函数是用C实现的CPython内置函数,您可以使用它来创建用户定义的类的方法,这些类本身就是C层,在调用时不调用字节代码。 如果您依赖GIL来提供“无锁”同步,这有时会很有用;由于GIL只能在操作代码之间交换,如果您代码特定部分中的所有步骤都可以推送到C,您可以使其以原子方式运行。 在Python 2中,你可以做这样的事
问题内容: 我正在尝试弄清楚如何解析一些XML(对于Android应用程序),在Java中很难做到这一点似乎很荒谬。似乎需要创建一个具有各种回调(startElement,endElement等)的XML处理程序,然后您必须注意将所有这些数据更改为对象。类似于本教程。 我真正需要的只是将XML文档更改为多维数组,甚至更好的是拥有某种Hpricot处理器。有没有办法做到这一点,还是真的必须在上面的示