在Excel中,我们有一个VLOOKUP
函数,它在表中的列中查找值,然后在找到某些内容时返回该表中给定列的值.如果没有,则会产生错误.
是否有一个函数只返回true或false,具体取决于是否在列中找到了值?
假设我有一个看起来像这样的表单:
[ Animal name input field ]
Add button
如果我输入名称并按Enter键,则会将具有给定名称的动物添加到表中.工作良好.我现在想要的是调用当前的工作方式"快速添加"并添加一个名为"慢添加"的新功能,我不太清楚该怎么做.基本上我想要的是,如果例如在输入或按下按钮时按住shift键,我希望表单提交方法做一些稍微不同的事情.在我的情况下,我希望它打开一个表格,在添加到表格之前可以添加有关动物的更多细节.
问题是我不太清楚如何做到这一点.我尝试console.info(eventData)
在当前的提交函数中添加一个FireBug ,我发现它eventData
包含一个altKey,shiftKey和controlKey属性,但即使我按下这些键,它们也总是未定义.
那么,当提交表单时按下某些修饰键时,是否有人知道如何在提交处理程序中执行一些特殊操作?
临时解决方案
结束时忽略了submit-button-shift-click-feature,而只是将快速添加功能作为shift-enter-in-input-fields.实现了这样的事情:
$('#new-task')
.submit(onNewAnimal)
.keypress(onNewAnimal);
function onNewAnimal(event)
{
if(event.type == 'keypress' && event.which != 13)
return true;
if(event.shiftKey)
{
// Quick add
}
else
{
// Open slow add dialog
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
如果有更好的方法仍然好奇,但在那之前,这就是我所拥有的.也许它可以帮助别人:)
我有一些数组收集的对象.出于各种原因,相同的对象也附加到某些DOM元素.我不时需要更新其中一个对象.最简单的方法是在数组中找到具有相同id属性的对象,通过AJAX获取新值,然后替换它.但这当然会创建一个新对象,并且附加到DOM元素的对象不再相同.这意味着,如果我要比较它们,它们将不再是同一个物体.
如何最简单地用新对象中的值替换正确的对象而不替换实际对象?(这样参考保持不变)
我不想要的例子
var values = [{id:1, name:'Bob'}, {id:2, name:'Alice'}, {id:3, name:'Charlie'}];
var bar = values[2];
console.info(bar === values[0]); // True
var newValue = {id:1, name:'Dave'};
// Somehow find the index of the object with id==3
values[2] = newValue;
console.info(bar === values[2]); // False, should still be true
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一方法是使用foreach或其他东西循环遍历对象,但希望javascript或jQuery内置一些内容,或者允许更高效或更简洁的代码.
我想我以前做过这个,但它也可能是PHP的一个功能.我想要的是做一个MySQL查询(在MySQL客户端,而不是PHP),并获得
Foo A
B
C
Bar B
D
E
Run Code Online (Sandbox Code Playgroud)
代替
Foo A
Foo B
Foo C
Bar B
Bar D
Bar E
Run Code Online (Sandbox Code Playgroud)
如果它是由第一列订购的话,这当然只会产生.不确定是否有可能,但就像我说的那样,我的意思是要记住曾经做过一次,但是不记得是怎么回事,或者是不是通过一些PHP"神奇"......
更新:突然想起我曾经使用它的地方.我在想的是WITH ROLLUP
修饰语GROUP BY
.但是我也发现它并没有像我在想的那样做,所以我的问题仍然存在.虽然我认为现在没有解决方案.但聪明的人以前证明我错了:P
更新:也许应该提到我想要的是多对多的关系.在实际选择中,Foo将是与会者的第一个名字,我也想要姓氏和其他一些列.A,B,C,D,E是与会者选择的选项.
attendee (id, first_name, last_name, ...)
attendees_options (attendee_id, option_id)
option (id, name, description)
Run Code Online (Sandbox Code Playgroud) 如果我理解正确,我需要输入这个来从maven运行我的项目:
mvn compile
mvn exec:java -Dexec.mainClass="com.foo.bar.blah.Main"
Run Code Online (Sandbox Code Playgroud)
有没有办法让我更简单?最好我想做
mvn run
Run Code Online (Sandbox Code Playgroud) 在我3年的计算机工程中,我对测试一无所知.我们大多刚刚被告知这非常重要.
无论如何,我自己开始进行单元测试,由Roy Osherove和他的书"单元测试的艺术"进行的演讲 .非常有帮助,明确和重点.
现在的问题是,当然有很多代码需要例如数据库或Web服务.我可以嘲笑这些将它们从有利于单元测试的等式中取出,但它确实留下了我的代码未经测试.是否有任何好的书籍或资源是最新的,只有很少的绒毛,这可以帮助我开始集成测试?最好关注C#.
我花了一些时间在Google上寻找将org.w3c.dom.Document转换为整个DOM树的字符串表示的方法,因此我可以将对象保存到文件系统.
但是我发现的所有解决方案都使用javax.xml.transform.Transformer,它不支持作为Android 2.1 API的一部分.如何在不使用此类/包含的情况下执行此操作?
我想写一个选择,我将该字段的值显示为正常,除非该字段为空.如果它为null我想显示一个特殊的文本,例如"Field is null".我最好怎么做?
// Oracle newbie
Run Code Online (Sandbox Code Playgroud) 这应该相当简单,但我只是卡住了.说你有路径/a/b/c/
.我想将其转换为包含以下内容的数组:
/
/a/
/a/b/
/a/b/c/
开头和结尾的斜线应该是可选的.有人帮忙吗?
我将把它用于创建目录的函数,我希望它也创建所有缺少的部分,如果例如a
或b
不存在则不会失败.
更新:File.mkdirs()
如果可以,我当然会使用,但这不在本地文件系统上.这是为了简化与SFTP库的接口,SFTP库只有一个mkdir
采用字符串形式的路径的方法.