草庐IT

explore_array

全部标签

javascript - 在没有旧的 'new Array(N)' 的情况下创建具有 N 个元素的数组的正确方法?

每当我使用数组时,我总是使用[]样式,但是,当我想创建一个包含固定数量元素的数组时,我使用newArray(N)(我不知道这样做的任何其他方式)我认为这没什么大不了的,直到我读到这些关于这件事的强硬言论:Anyonedoingthis,using“newArray()”insteadof“[]“,or“newObject()”insteadof“{}”needstorelearnJavaScript.我真的很想避免编写糟糕的代码。有人介意告诉我正确的前进方向吗? 最佳答案 我不会太担心2006年博客上的一些随机评论。特别是因为您的用

javascript - 使用POST请求的AJAX应用程序是否总是在Internet Explorer中失败?

我最近发现,使用InternetExplorer运行我的应用程序的用户间歇性故障的问题是由于InternetExplorer中的错误引起的。该错误位于HTTP堆栈中,并且应该影响所有使用来自IE的POST请求的应用程序。结果是失败,其特征是请求似乎挂起了大约5分钟(取决于服务器类型和配置),然后从服务器端失败。服务器放弃后,浏览器应用程序将出错,脱离发布请求。我将在下面详细解释IE错误。据我所知,如果使用XMLHttpRequest将POST请求发送到服务器的任何应用程序都发生在错误的时刻,那么这种情况都会发生。我编写了一个示例程序,试图在那些时候发送POSTS。它尝试在服务器关闭连接

javascript - 鉴于 "arguments"不是真正的数组,为什么 Array.prototype.slice.call(arguments) 有效,而 Array.prototype.slice.call(someobject) 无效?

如果arguments只是一个具有length属性的对象,那么为什么它的行为似乎不同于其他非数组对象,例如Array.prototype.slice。例如,下面的代码首先提示“undefined”,然后提示“foo”。为什么这些不同?(function(a){varmyobj={0:"foo"};varmyobjarray=Array.prototype.slice.call(myobj);varargumentsarray=Array.prototype.slice.call(arguments);alert(myobjarray.shift());alert(argumentsar

javascript - 带有 Material-UI 的 ReactJS : How to sort an array of Material-UI's <TableRow> alphabetically?

目前,我渲染Material-UI的's(http://www.material-ui.com/#/components/table)与一个数组s并使用.map().每个有一个代表名字,像这样Josh.但是,如果用户按下按钮,我想对进行排序按's字母顺序排列名。所以说例如10s,如果数组[0]的名字是Conny,而数组[1]的名字是Adrian,则希望数组[1]成为数组[0]。正确的做法是什么?任何指导或见解将不胜感激。编辑每一行都会像数组rows那样呈现,具有属性为firstName的对象和favColor:{rows.map((row)=>{return()})}每行定义如下:co

javascript - 为什么 Array.prototype.push 返回新的长度而不是更有用的东西?

自从在ECMA-262,3rdEdition中推出以来,Array.prototype.push方法的返回值是一个Number:15.4.4.7Array.prototype.push([item1[,item2[,…]]])Theargumentsareappendedtotheendofthearray,intheorderinwhichtheyappear.Thenewlengthofthearrayisreturnedastheresultofthecall.返回数组的新长度背后的设计决策是什么,而不是返回可能更有用的东西,例如:对新附加项的引用变异数组本身为什么这样做,是否有

javascript - Internet Explorer 返回错误长度的字符串

这个问题在这里已经有了答案:ToLocaleDateString()changesinIE11(5个答案)关闭6年前。我遇到了一个可能的IE错误,调用JavaScript.length函数返回一个值,如果/当字符串派生自.toLocaleString()。vard=newDate();varlocale=navigator.language;varmonth=d.toLocaleString(locale,{month:"long"});//month.lengthwillreturnthelengthofthemonthstring+1//(eg:ifmonth="March",mo

javascript - Array.prototype.splice - 帮助理解一节课

这是教程中的一个函数:functionadd(){varvalues=Array.prototype.splice.call(arguments,[1]),total=0;for(varvalueofvalues){total+=value;}returntotal;}SOURCE表达式Array.prototype.splice.call(arguments,[1])让我很困惑。为什么是1?为什么要用括号[1]?如果我们传递1,它表示splice()中的start位置,因此它将跳过我们传递给add()的第一个参数>,因此它不会添加所有参数...这是教程中的错误吗?

javascript - array.forEach 和 angular.forEach 哪个更高效?

array.prototype.forEachforEach()对数组中存在的每个元素按升序执行一次提供的回调。它不会为已删除或未初始化的索引属性调用(即在稀疏数组上)。来源:https://developer.mozilla.org/enUS/docs/Web/JavaScript/Reference/Global_Objects/Array/forEachangular.forEach为obj集合中的每个项目调用一次迭代器函数,它可以是对象或数组。迭代器函数用iterator(value,key,obj)调用,其中value是对象属性或数组元素的值,key是对象属性键或数组元素索引

javascript - Internet Explorer、Json.Net JavaScript 日期和毫秒问题

我不确定是我遗漏了什么-还是IE或Json.Net。但基本上这是可行的:新日期("2012-08-03T12:36:54.743Z")失败并出现“无效日期”错误:新日期("2012-08-03T12:36:54.74Z")第二个日期在SQLServer中存储为:2012-08-0312:36:54.740然后使用Json.Net将其序列化为JSON-Json.Net确实将日期序列化为2012-08-03T12:36:54.74Z,有效地切断了最后一个0。我的问题:这是IE中的预期行为吗-它需要所有3位毫秒位才能工作?这是Json.Net中的预期行为吗?它总是会删除日期中的最后一个0吗?

Javascript DOMContentLoaded 事件未在 Internet Explorer 中触发

我有以下代码将函数附加到DOMContentLoaded事件,但该函数从未在InternetExplorer11中调用代码:if(document.addEventListener){document.addEventListener("DOMContentLoaded",init,false);}else{document.attachEvent("onDOMContentLoaded",init);} 最佳答案 它可能不会触发的原因有几个:它已经触发(在您附加事件处理程序之前)而您错过了它。您运行的是不支持DOMContentL