草庐IT

Java:微优化数组操作

全部标签

javascript - 删除数组中以特定字符串开头的所有项目

你好,假设我在javascript中有一个这样的数组:vararr=["ftp_text_1","abc_text_2","ftp_text_3"];如何从我的数组中删除所有以ftp_开头的字符串谢谢 最佳答案 只需使用Array.filter:arr=arr.filter(function(item){returnitem.indexOf("ftp_")!==0;});编辑:对于IE9-支持你可以使用jQuery.grep:arr=$.grep(arr,function(item){returnitem.indexOf("ftp_

javascript - 如何将 jquery 事件重新绑定(bind)到通过 ajax 加载的内容,而无需为每个事件/类执行此操作

所以我在其中绑定(bind)了这个jquery-App:我所有“.btn-delete”元素的“删除功能”我所有“.btn-add”元素的“添加功能”等等。在我的webapp的一个div中,我异步加载内容,包括我想将“删除”和“添加”功能绑定(bind)到的元素。这些元素也有一个“btn-delete”或“btn-add”类-但由于内容是异步加载的,因此事件不会绑定(bind)到它们而不做任何事情。所以我听说使用可以在异步加载内容后立即触发的.on('click'...)函数,我可以重新绑定(bind)这些函数。但是我必须为我想使用的每个功能都这样做。我不想要。我想要的是有一个通用函数

javascript - Javascript 中的字符串和字符数组有什么区别?

当我检查这两个是否相等时,它们显然不相等。谁能解释一下为什么?varstring="Hello";vararray=['H','e','l','l','o'];为什么(string===array)是false?编辑:这个网站很棒。这么快的帮助。谢谢大家。 最佳答案 Whyis(string===array)isfalse?您正在使用strictcomparison(===),它还会检查值的数据类型。显然,原始字符串值与对象的数据类型不同,对象只真正等于它们自己。证明:varfoo=[1,2,3];varbar=[1,2,3];co

javascript - 如何以 angularjs 形式添加数组大小验证规则?

我有一个表单,其中包含一些文本输入字段和存储在Controller$scope中的动态项目列表,以及一些用于添加/删除列表中项目的函数。我想使表单无效,直到项目列表达到预定义的长度。所以我创建了一个formRepeat指令,它带有一个ngModel属性,然后使用ngModelController使表单无效。http://plnkr.co/edit/jSFvak?p=preview这可行,但我认为这不是更好的方法,因为该指令不是很灵活。最简单的方法是使Controller中的表单无效,例如:$scope.myForm.$valid=false;但这行不通。有没有更好的办法?

javascript - JSON.stringify 是否保留数组中对象的顺序

我正在创建一个javascript对象,如下所示varmyObjects;for(vari=0;i之后我将它们按如下方式进行字符串化JSON.stringify(message);上述方法是否按照对象之前的顺序对对象进行了字符串化?在stringify之后,它们会像以前一样按0,1,2....9的顺序排列吗? 最佳答案 文档中没有任何内容明确确认数组项的顺序已保留。但是,文档声明对于非数组属性,不能保证顺序:Propertiesofnon-arrayobjectsarenotguaranteedtobestringifiedinan

javascript - 如何在 Sequelize.js 中定义对象数组?

如何在Sequelize.js模型中定义对象数组字段?我需要这样的东西{"profiles":[{"profile_id":10,"profile_pictures":["pic1.jpg","pic2.jpg","pic3.jpg"],"profile_used_id":12},...//moreprofiles]}我检查了docs,但找不到相关的数据类型,我在这里遗漏了什么吗? 最佳答案 我已经成功地通过定义我的模型来模仿数组:varMyModel=sequelize.define('MyModel',{myArrayField

javascript - AngularJS 显示数组中的列表

我有一个返回数组的Controller,我试图将该数组的每个元素显示为一个列表。我正在尝试执行的操作无效:{{response.text}}response.text从Controller返回一个数组。我也想知道,ng-repeat属性的值应该是什么,任何唯一的字符串?谢谢! 最佳答案 使用$scope变量在Controller中定义数组:app.controller('PostsCtrl',function($scope){$scope.response={text:['hello','world']};}然后在VARIABLE上

javascript - NodeJS 计算数组中有多少个对象?

我如何计算数组中有多少个对象?数组看起来像:[{id:1},{id:2},...]如果是PHP,我想我可以使用count(),但是NodeJS/Javascript呢?编辑:if(offer.items_to_receive.length>0){console.log("items:"+offer.items_to_receive.length);for(vari=0;i为什么它能读到“值(value)X票”,而不能读到另一部分? 最佳答案 使用.lengthvardata=[{id:1},{id:2}];console.log(d

javascript - 我如何将 Math.max 与对象数组一起使用?

我想选择对象数组中最大的数字,因此,例如,我想获取包含最大数字的x属性(在此示例中,maximum应为200):varmyArr=[{x:100,y:200},{x:200,y:500}];//doesnotwork:varmaximum=Math.max.apply(Math,myArr.x); 最佳答案 您必须自己从对象中提取属性:varmaximum=Math.max.apply(Math,myArr.map(function(o){returno.x;}));它使用.map()遍历数组的元素并返回“x”属性的值。然后将该结果

javascript - 函数式编程和 DOM 操作

如何在以“函数式”方式编写的脚本中以最“纯粹”的方式操作DOM。例如,如果我只需要更改元素宽度,我应该使用像这样的典型语法:document.querySelector(".class").style.width=...或者编写专门的函数,比如:functionresize(el,w){returnel.style.width=w;}resize(document.querySelector(".class",100));我想,我了解函数式编程的一般概念,但我遇到的所有示例都集中在处理数字或字符串上。操作DOM被认为是副作用,所以我想知道如何以正确的方式进行操作。编辑:下面更新了代码,