草庐IT

javascript - Prototype 在这个 Array slice 调用中,为什么?

我正在阅读JS函数的arguments变量的MDN页面:https://developer.mozilla.org/en/JavaScript/Reference/Functions_and_function_scope/arguments我知道arguments不是数组,所以这行不通:vara=arguments.slice();MDN上的解决方案是这样做:varargs=Array.prototype.slice.call(arguments);为什么使用Array.prototype而不仅仅是Array.slice.call(arguments)?在这里使用原型(prototyp

javascript - javascript中的对象和关联数组有什么区别?

令人困惑的讨论Inthisquestion,有一个关于javaScript中关联数组和对象概念的讨论,我有点困惑。在此示例代码中:varcheck={pattern:{name:/^[a-zA-Z-\s]{1,20}$/,email:/^[a-zA-Z0-9._(-)]+@[a-zA-Z0-9.(-)]+\.[a-zA-Z]{1,4}$/,pass:/.{6,40}/,url:/^[(-)\w&:\/\.=\?,#+]{1,}$/,aml:/$/}};这是让我感到困惑的讨论:@steven.yangtheouterobjectisnotanassociativearrayinyours

javascript - 在 IE 中将函数添加到 Array.prototype 会导致它作为元素被插入每个数组

我在项目的开头将以下polyfill添加到Array:if(!Array.prototype.find){Array.prototype.find=function(predicate){if(this===null){thrownewTypeError('Array.prototype.findcalledonnullorundefined');}if(typeofpredicate!=='function'){thrownewTypeError('predicatemustbeafunction');}varlist=Object(this);varlength=list.leng

javascript - 如何在没有弹出的情况下获取数组的最后一项?

这个问题在这里已经有了答案:SelectinglastelementinJavaScriptarray[duplicate](13个答案)关闭6年前。我需要与以下相同的结果:vararray=[1,2,3,5,7];vartop=array.pop();问题是pop从数组中删除元素。为了解决这个问题,我添加了另一行:array.push(top);但这让我很烦,到现在我在这个项目中做了四五次。有没有更好的办法?

javascript - 你能用用户定义的对象伪造 Array.isArray() 吗?

我很好奇是否有任何方法可以用用户定义的对象伪造出Array.isArray()。摘自《JavaScript模式》一书:Array.isArray([]);//true//tryingtofoolthecheck//withanarray-likeobjectArray.isArray({length:1,"0":1,slice:function(){}});//false那个对象显然失败了,但是还有其他方法吗?这纯粹是出于好奇,并不是因为我认为您可以在常规客户端代码中搞砸.isArray()(尽管知道如果可以的话显然会很棒!)。 最佳答案

javascript - 良好的跨浏览器 javascript 兼容性/增强库?

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭10年前。显然我已经失去了所有的谷歌技能。对于尝试跨浏览器标准化javascript并提供小的增强功能的javascript库,我找不到任何好的结果。我不是在寻找像jQuery、Prototype等这样的完整框架……即使他们在某种程度上做这种事情。我只是在谈论语言/可用功能标准化,没有DOM的东西。只是一个很好的跨浏览器库,可确保所有标准内容(数组映射、reduc

javascript - TypeScript/JavaScript 中的 array.indexOf

这个问题在这里已经有了答案:indexOfmethodinanobjectarray?(29个答案)关闭6年前。更新:虽然这个问题被标记为与this重复.但是@ssube的方法很简洁,也更聪明。更新2:@Grungondola的评论中似乎有新的方法可以做到这一点。我正在使用Typescript。这很有效。vararray1=[];array1.push(5);array1.push(6);console.log("a",array2.indexOf(6));但这并不能很好地工作。因为array2.indexOf返回-1,这意味着它没有找到它。vararray2=[];array2.pu

JavaScript 1.6 Array.map() 和 Array.filter() 不使用内置函数作为参数

这很好用:["655971","2343","343"].map(function(x){returnparseInt(x)})//[655971,2343,343]但这不是:["655971","2343","343"].map(parseInt)//[655971,NaN,NaN]Array.filter()也是如此我在这里错过了什么? 最佳答案 这是因为map向回调函数传递的参数不仅仅是数组项。你得到:callback(item,index,array)通常你的函数会忽略它不需要的参数。但是parseInt接受一个可选的第二个

Javascript 生成 2 个大小的多维数组

我想不出动态生成具有2种不同大小的多维数组的最佳方法。我们有一个UI,需要一行4个项目,然后是3个。这种模式会重复,直到数组中的内容用完。这基本上是我需要做的://Convertconstarray=[1,2,3,4,5,6,7,8,9,10,11,12,13,14];//toconstrows[[1,2,3,4],[5,6,7],[8,9,10,11],[12,13,14]];这就是我目前所拥有的,它只是将每个数组转换为4个。constbuildRows=(arr,length)=>arr.reduce((rows,val,i)=>(i%length==0?rows.push([va

javascript - 拉斐尔-JS : Rect with one round corner

paper.rect(0,0,settings.width,settings.height,settings.radius);创建一个带有圆Angular的漂亮矩形。是否可以创建一个只有一个圆Angular的矩形? 最佳答案 如果你使用RaphaelJS:Raphael.fn.roundedRectangle=function(x,y,w,h,r1,r2,r3,r4){vararray=[];array=array.concat(["M",x,r1+y,"Q",x,y,x+r1,y]);//Aarray=array.concat([