草庐IT

指针和数组的笔试题

全部标签

javascript - Javascript 正则表达式中被动(非捕获)组的目的是什么?

Javascript正则表达式中被动组的用途是什么?被动组以问号冒号开头:(?:group)换句话说,这两件事看起来是一样的:"helloworld".match(/hello(?:world)/)"helloworld".match(/helloworld/)在什么情况下需要非捕获组,为什么? 最佳答案 两个捕获组的用例正则表达式中的捕获组实际上有两个不同的目标(正如名称“捕获组”本身所暗示的那样):分组—如果您需要将一个组视为一个单独的实体,以便将一些东西应用到整个组。可能最简单的例子是包含一个可选的字符序列,例如“foo”后面

javascript - 在 IE11 中使用指针事件时防止单击?

我正在开发一个必须在IE11和Edge上运行的JavaScript应用程序。在IE11中,我看到的事件链(从https://patrickhlauke.github.io/touch/tests/results/复制)如下:pointerover>mouseover>pointerenter>mouseenter>pointerdown>mousedown>(pointermove>mousemove)+>pointerup>mouseup>(lostpointercapture)>pointerout>mouseout>pointerleave>mouseleave>focus>cl

javascript - 使用 Angularjs 计算总价和数量

使用ui.bootstrap.typeahead,我从我的json列表中选择一个产品(通过键入“P”)。我的目标是自动设置总价。但我无法显示所选产品的价格(value="{{selected.price}}")因此它可以计算总计。不确定我做错了什么。笨蛋:http://plnkr.co/edit/F9jPt7IZgsWyON2vEmicangular.module("app",["ui.bootstrap.productautocomplete"]);产品.json{"products":[{"productversion":1,"name":"product1","price":"1

javascript - 添加空对象和数组

我提前道歉,因为这在某种程度上是一个愚蠢的问题,但我只需要知道为什么会发生这种情况,但我没有找到答案。所以,你去吧,堆栈溢出!在此video(我怎么推荐都不为过)大约2:00标记,这些家伙用Javascript显示:[]+[]=emptystring[]+{}=object{}+[]=0{}+{}=NaN谁知道为什么? 最佳答案 Thisblogpost通过AdamIley涵盖了大多数边缘案例背后的原因。(注意:该站点存在一些数据库问题。您可以使用googlecache直到他们修复问题。)

javascript - 生成器表达式和数组理解中的解构赋值

为什么for([]inobject);工作正常但[void0for([]inobject)]或(void0for([]inobject))抛出无效左手赋值的语法错误?例如,我希望下面的代码可以工作,但它没有(由于语法错误断言甚至没有完成):let(i=0,iterable={__iterator__:function(){vari=5;while(i--)yieldi;}}){for([]initerable)i++;console.assertEquals([void0for([]initerable)].length,i);} 最佳答案

javascript - 至少匹配 m 组中的 n 组的正则表达式

我打算编写一个正则表达式,仅当字符串至少包含n个不同类别的字符时才匹配。我打算用它来强制我的用户创建强密码,并想检查密码是否至少包含以下3项:人物大写字符数字特殊字符如果所有这些类都存在,编写一个匹配的正则表达式是微不足道的使用前瞻。但是,我无法理解“至少3”部分。这甚至可能(在一个漂亮、紧凑的表达式中)还是我必须创建一个怪物表达式? 最佳答案 我认为这将比列出4个中的3个的每个可能组合更紧凑。它利用否定前瞻来确保整个字符串不只由您列出的一个或两个字符类组成:(?!([a-zA-Z]*|[a-z\d]*|[^A-Z\d]*|[A-Z

javascript - JavaScript 中的不可变哈希和数组实现?

javascript中是否有简单的不可变哈希和数组实现?我不需要最好的速度,比克隆更好的合理速度就可以了。另外,如果有简单的Java或一些其他语言的实现可以容易理解并移植到JavaScript,那也很好。更新:目标不仅仅是卡住散列(或数组),而是高效地实现更新操作——不可变散列的更新应该返回一个新的不可变散列。而且它应该比“克隆原始文件并更新它”更有效。原生JS类型的更新复杂度为O(1),克隆复杂度为O(n),特殊不可变数据结构(我要求的)为0(log(n))UPDATE2:JavaScript已经有了Array/Hash:是的,但它们是可变的,我需要类似但不可变的东西,基本上可以通过

javascript - 如何在使用我自己的鼠标滚轮平滑滚动时缩放到鼠标指针?

我的应用程序的一部分包含类似于谷歌地图的功能,用户应该能够在容器内放大和缩小图像。与谷歌地图一样,我希望用户能够使用鼠标滚轮滚动,图像上的像素始终保持在鼠标指针的正下方。所以基本上用户将缩放到他们的鼠标指针所在的位置。对于缩放/平移,我正在使用这样的css转换:可见$('#image').css({'-moz-transform':'scale('+ui.value+')translate('+self.zoomtrans.xNew+'px,'+self.zoomtrans.yNew+'px)','-moz-transform-origin':self.zoomtrans.xImage

javascript - 如何比较字符串和数值(尊重负值,null 总是最后一个)?

我正在尝试对可以是数字或字符串值混合的值数组进行排序(例如[10,"20",null,"1","bar","-2",-3,null,5,"foo"]).我怎样才能对这个数组进行排序null值总是放在最后(不管排序顺序如何,参见jsFiddle)负数正确排序(即它们小于正数并且在它们之间正确排序)?我做了一个jsFiddle带有详细的数字和字符串示例(使用localeCompare和numeric选项),但将在下面粘贴我的排序算法的数字版本作为起点。//Sortingordervarorder="asc";//Tryswitchingbetween"asc"and"dsc"//Dummy

javascript - 为什么添加新属性时数组的长度没有改变?

vararr=["Hello","There",123,456,{show:function(value){alert(value);}}];arr[4].show(arr[0]);arr["Hello"]={damn:function(){alert("What'shappeningyo!");}}arr.Hello.damn();alert("Arrlengthis:"+arr.length); 最佳答案 引用ArrayObjects的ECMAScript5规范,ApropertynameP(intheformofaString