草庐IT

可变数组

全部标签

对象数组和 indexOf 的 Javascript 奇怪之处

不太明白这里发生了什么。给定数组(arr):[{"first_name":"Dan","last_name":"Woodson","id":1},{"first_name":"Jen","last_name":"Woodson","id":2},{"first_name":"Yoshi","last_name":"Woodson","id":3}]和对象(obj):{"first_name":"Yoshi","last_name":"Woodson","id":3}为什么arr.indexOf(obj)会返回-1(特别是因为我在函数的前面使用它的“id”参数从数组中检索了对象)?

Javascript数组变成对象结构

我在使用包含一些对象的javascript数组时遇到了一个奇怪的行为(也许它根本不奇怪,但只是我不明白为什么)。由于我不是javascript专家,所以很可能会很清楚地解释为什么会发生这种情况,我只是不知道。我有在文档中运行的javascript。它使一个类似于这样的对象数组:varmyArray=[{"Id":"guid1","Name":"name1"},{"Id":"guid2","Name":"name2"},...];如果我像JSON.stringify(myArray)一样在它创建的地方打印出这个数组,我得到了我所期望的:[{"Id":"guid1","Name":"nam

javascript - 如何使用 easyXDM 通过 AJAX 帖子将 javascript 对象/数组作为键值对发送?

最近我意识到我需要使用easyXDM而不是jQuery的$.ajax以发出跨域发布请求。设置好easyXDM后,我发现这些函数排列得相当紧密:jQuery:$.ajax({url:"/ajax/",method:"POST",data:myData});easyXDM:xhr.request({url:"/ajax/",method:"POST",dataType:'json',//Iaddedthistryingtofixtheproblem,didn'tworkdata:myData});myData的设置类似于:myData={};myData[1]='hello';myData

javascript - jsDoc - 如何指定数组长度

在jsDoc中,我可以像这样指定我的数组参数和成员:/***@constructor*@param{Array.}myArray*/functionsomeFunction(myArray){this.firstArray=myArray;/**@member{Array.}*/this.secondArray=[];}还有没有办法指定这些数组的length,或者minLength和maxLength? 最佳答案 我想您是在问是否可以在类型表达式中包含最小/最大长度(例如,Array.)。简而言之,答案是否定的。您需要在每个数组的描

javascript - 如何通过我的数组执行此 "weird"循环?

我需要以一种“奇怪”的方式遍历一个简单的数组。我的数组的长度总是奇数的平方。假设长度是49。为了更清楚,我的元素是数组的索引。所以我有类似的东西:myArray=[0,1,2,3,4...47,48]所以,你可以想象下面的方阵:0714212835421815222936432916233037443101724313845411182532394651219263340476132027344148我必须从这个矩阵的中心开始(即myArray[Math.floor(myArray.length/2)])在我的示例中:24然后我必须在左右数字之间交替,直到我通过所有行。在我的示例中,对

javascript - TypeScript:如何在编译时声明固定大小的数组以进行类型检查

更新:这些检查适用于编译时,而不是运行时。在我的例子中,失败的案例都在编译时被捕获,我期望其他应该失败的案例有类似的行为。假设我正在编写一个类似表的类,我希望该类的所有成员都是相同长度的数组,例如:classMyClass{tableHead:string[3];//expecttobea3elementarrayofstringstableCells:number[3];//expecttobea3elementarrayofnumbers}目前我找到的最接近的解决方案是:classMyClass{tableHead:[string,string,string];tableCells

javascript - 将二维数组变成树

我正在使用GoogleApps脚本,我可以将Google电子表格数据检索为二维数组。我想将此数组转换为树形表示以在GoogleDrive中构建文件夹层次结构。这是我可以从GoogleSpreadsheet获得的二维数组。vardata=[["F1","F1S1","",""],["","F1S2","F1S2S1",""],["","","F1S2S2",""],["","F1S3","",""],["F2","F2S1","",""],["","F2S2","F2S2S1",""],["","","F2S2S2","F2S2S2S1"],["","","","F2S2S2S2"]]现

javascript - Scala Play - 如何将 Scala 字符串列表转换为 javascript 字符串数组(避免 "问题)?

当使用Play模板引擎将Scala字符串列表转换为javascript字符串数组时,您可能会从这样的事情开始......varstrArray=[@scalaListOfStrings.mkString(",")];...并且会发现这不起作用,因为字符串周围的引号丢失了。接下来你可能会尝试这样的事情......varstrArray=[@scalaListOfStrings.map(s=>"\""+s+"\"").mkString(",")];...才发现这会将字符串包装在"而不是"中。我能够完成这项工作的唯一方法是使用...varstrArray=[@Html(scalaListOf

javascript - 在 QUnit 中比较两个数组的最简单方法是什么

我正在编写JavaScript单元测试(使用QUnit库)。我需要验证我的数组是否包含预期的(且仅包含)元素。vararray=getArrayFunction(a,b);equal(["one","two","three"],array,"Testisfailingevenif'array'containsneededelements");最简单的方法是什么? 最佳答案 您应该使用deepEqual()代替equal()。这将比较数组元素和对象属性,而不仅仅是使用==比较运算符,对于不共享相同构造函数的对象,它的计算结果为fals

javascript - 从 TypeScript 扩展数组

我在下面的代码中做错了什么?我正在尝试在我的类MyNumberList上扩展Array,然后尝试使用它。我看到的是似乎没有任何项目被添加到列表中。当我尝试访问列表元素时,我得到一个undefined。P.S我正在使用TypeScript1.8.2classMyNumberListextendsArray{constructor(...numbers:number[]){//lookslikethisisnotworkingsuper(...numbers);}}letstatusCodes:MyNumberList=newMyNumberList(10,20,30);console.l