标签: conditional-statements

Rails虚拟属性搜索或sql组合列搜索

我有一个属性'first'和'last'的用户模型所以例如User.first.first#=>"Charlie"User.first.last#=>"Brown"

此用户模型还具有虚拟属性"full_name"

#user.rb
def full_name
  [first,last].join(' ')
end

def full_name=(name) #don't know what to do with people w/ middle names
  split = name.split(' ')
  self.first = split[0]
  self.last = split[1]
end
Run Code Online (Sandbox Code Playgroud)

例如:

User.first.full_name = "Charlie Brown" #=> "Charlie Brown"
User.first.full_name = "Homer Simpson" #=> "Home Simpson"
User.first.save
User.first.first #=> "Homer"
User.first.last #=> "Simpson"
Run Code Online (Sandbox Code Playgroud)

如果我可以通过该虚拟属性进行搜索,例如动态查找,那就太好了:

User.find_by_full_name('Home Simpson') # this doesn't work
Run Code Online (Sandbox Code Playgroud)

查找条件的示例:

User.all(:conditions => ['full_name LIKE ?', query]) #this doesn't work
Run Code Online (Sandbox Code Playgroud)

我希望在SQL语言中至少找到一些可以做到这一点的方法; 如果还有一个动态虚拟属性查找,那就是在结构上的额外香草源.(今年冬天有这个人吗?)

我还担心被搜索的名称,例如,"Holmes"可能只能在"第一"列中搜索,而不能搜索到"最后"列,例如User.first.full_name #=> "Sherlock Holmes".

我确实尝试过更全面的搜索:

user.rb …

sql ruby-on-rails find virtual-attribute conditional-statements

11
推荐指数
1
解决办法
3412
查看次数

根据条件排除点击事件?

我正在尝试为jQuery事件设置条件.我有一个输入元素和一个div.我想检测页面上任何地方的单击并执行该方法,但仅当点击不在输入或div上时.

jquery events jquery-selectors conditional-statements

11
推荐指数
1
解决办法
9429
查看次数

Python:满足特定条件时,从列表中创建新列表

我想从另一个单词列表中创建一个新列表; 当满足某个词的某个条件时.在这种情况下,我想将长度为9的所有单词添加到新列表中.

我用过 :

resultReal = [y for y in resultVital if not len(y) < 4]
Run Code Online (Sandbox Code Playgroud)

删除长度为4的所有条目.但是,我现在不想删除条目.我想创建一个包含单词的新列表,但将它们保留在旧列表中.

也许是这样的:

if len(word) == 9:
     newlist.append()
Run Code Online (Sandbox Code Playgroud)

谢谢.

python list append conditional-statements

11
推荐指数
1
解决办法
4万
查看次数

条件powershell参数

有没有办法在powershell函数中根据某些条件(例如:如果其中一个参数不存在或为false)强制使用某些参数?

我的想法是能够以两种方式调用函数.具体示例是从sharepoint获取列表的函数 - 我应该能够使用列表相对URL(一个且唯一的参数)或者使用web url和列表显示名称(两个参数,两者都是必需的,但仅当列表相对URL是不曾用过).

我希望我的问题很明确.

parameters powershell function conditional-statements

11
推荐指数
1
解决办法
1万
查看次数

如果.. else号小于,则无法访问的代码

假设我们在C(或类似语言)中有以下代码:

if (x < 10)
  do_work1();
else if (x < 5)
  do_work2();
Run Code Online (Sandbox Code Playgroud)

在某些情况下,是否会执行此条件的第二个分支?编译器是否会警告无法访问的代码?

c conditional-statements

11
推荐指数
2
解决办法
1037
查看次数

JS:为什么这么慢?它不应该测试其他OR条件,但它有吗?

我刚测试了一些东西.我一直认为在OR条件下,一旦计算机/浏览器发现某些内容为真,它就会返回它并且不会测试其他条件.我围绕这个假设构建了我的代码.

但是,我计时了,似乎长测试需要x4次,对此有何解释?

注意:在Google Chrome控制台中测试.

JSPerf:

http://jsperf.com/or-condition return true || 1

http://jsperf.com/or-condition2 var condition = true || 1; return condition;

http://jsperf.com/or-condition3 if(true || 1) return true似乎相对更快.

编辑:我刚刚发现真实之后的条件数量并不重要.重要的是病情的长短.查看http://jsperf.com/or-condition5.

我的理论是浏览器由于其长度而将功能分成2个以上的不同内存区域.当它调用该函数时,它需要从多个内存区域而不是1中获取数据.

a = function(){
    return true ||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1||1;
}
b = function(){
    return true;
}
//#############################################

var start = Date.now();
for(var i = 0 ; i < 1000000 ; i++){
    a();
}   var end = Date.now();       
console.log(end-start);     //3075


var start = Date.now();
for(var i = 0 ; i < 1000000 ; i++){ …
Run Code Online (Sandbox Code Playgroud)

javascript performance conditional-statements

11
推荐指数
1
解决办法
288
查看次数

这个eval条件的目的是什么?

我在这里浏览源代码:http://js-dos.com/games/doom2.exe.html并注意到一些事情:

if (typeof Module === 'undefined') 
{
    Module = eval('(function() {try { return Module || {} } catch(e) { return {} }})()');
}
Run Code Online (Sandbox Code Playgroud)
  • Module函数使用内联脚本标记定义
  • 稍后var在另一个内联标记中再次声明它,这次它检查模块是否存在.

我的问题:如果只尝试再次返回模块,那么使用自调用函数声明Module有什么意义呢?是不是已经证明它不存在?为什么不直接将Module声明为{}

javascript eval conditional-statements emscripten

11
推荐指数
1
解决办法
235
查看次数

除非使用感叹号在Javascript中使用vs?

对于可被2整除的数字,下面的代码会尝试打印出"均匀".

如果不是(测试)那么()而不是:if(!test)then(),当条件测试是"n%2"时.下面的代码似乎是"IF数字不能被2整除,打印输出'数字是偶数'",这似乎不合逻辑.

更一般地说,在指定条件时使用If语句编写"除非"函数有什么好处,当我们可以做的只是写入if(!condition)?

任何帮助深表感谢.

function unless(test, then) {
  if (!test) then();
}
function repeat(times, body) {
  for (var i = 0; i < times; i++) body(i);
}

repeat(5, function(n) {
  unless(n % 2, function() {
    console.log(n, "is even");
});
// ? 0 is even
// ? 2 is even
// ? 4 is even
Run Code Online (Sandbox Code Playgroud)

javascript oop if-statement function conditional-statements

11
推荐指数
2
解决办法
3万
查看次数

具有多个条件的for循环的矢量化

dummies  = matrix(c(0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 
0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0), nrow=6, ncol=6) 
colnames(dummies)  <- c("a","b", "c", "d", "e", "f")
Run Code Online (Sandbox Code Playgroud)

我有一个假人矩阵

> dummies
     a b c d e f
[1,] 0 0 0 0 1 0
[2,] 0 0 1 0 0 0
[3,] 1 0 0 0 0 0
[4,] 0 0 …
Run Code Online (Sandbox Code Playgroud)

for-loop r vectorization conditional-statements

11
推荐指数
3
解决办法
663
查看次数

Svelte 的 v-show 替代方案

情况是我Loading在获取请求时显示组件。我使用 store 设置$loadingtrue,内部条件是Loading组件。问题是加载组件似乎需要一些时间才能显示。感觉/看起来原因是加载组件的重新渲染。所以,我在 Svelte 中寻找v-show类似的东西,但我在文档中找不到。(如果有的话不要生气,告诉我即可。)

有人可以帮忙解决这个案子吗?

conditional-statements svelte svelte-3

11
推荐指数
1
解决办法
3992
查看次数