草庐IT

可变数组

全部标签

javascript - 计算数组元素总和的最快方法

我正在尝试找到计算数组中包含的元素总和的最快方法。我设法使用eval()做到了,但我认为evalasevil.vararr=[10,20,30,40,50];console.log(eval(arr.join('+')));//logs150除了使用for循环之外,还有更好的方法吗?我正在考虑更多类似的事情,但它不起作用:vararr=[10,20,30,40,50];console.log(newNumber(arr.join('+')));//logsaNumberObjectconsole.log(newNumber(arr.join('+')).toString());//lo

javascript - 对象数组与lodash的深度比较

我有2个对象数组,我将与lodash进行深入比较但是,我有一个问题:>varx=[{a:1,b:2},{c:3,d:4}];>vary=[{b:2,a:1},{d:4,c:3}];>_.difference(x,y,_.isEqual);[{a:1,b:2},{c:3,d:4}]我应该如何比较才能看到两者相等? 最佳答案 您可以使用differenceWith()用isEqual()比较器,并调用isEmpty检查它们是否相等。varisArrayEqual=function(x,y){return_(x).differenceWi

javascript - 如何检查我的键是否存在于对象数组中

vararr=[{key:"key1",value:"z"},{key:"key2",value:"u"},{...}];如何检查我的key:"key1"是否已经存在。如果它不存在,我需要在ma数组中添加键。if(arr.hasOwnProperty("key1")){arr.unshift({key:"key1",value:"z"});} 最佳答案 为了更容易,您应该这样存储您的数据:varmap={"key1":"z","key2":"u"};然后您可以进行检查,如果您的键不与对象上的任何现有属性冲突,并且您不需要空值,则可以

javascript - 如何将关联数组连接到字符串中

我现在正在尝试这样做,我想知道是否有一种“最常用”的方法可以将关联数组(它的值)连接到一个字符串中,由一个字符分隔。比如我有varAssocArray={id:0,status:false,text:'apple'};连接此对象的元素后的字符串将是"0,false,'apple'"or"0,0,'apple'"如果我们用“,”字符连接它们任何的想法?谢谢! 最佳答案 Object.keys(AssocArray).map(function(x){returnAssocArray[x];}).join(',');PS:某处有Objec

javascript - 对象数组的 Lodash 联合

我想使用_.union函数创建两个对象数组的并集。Union仅适用于基元数组,因为它使用===来检查两个值是否相等。我想比较使用键属性的对象:具有相同键属性的对象将被视为相等。有没有一种很好的功能性方法可以理想地使用lodash实现这一目标? 最佳答案 一个非纯粹的lodash方法来做到这一点,但使用array.concat函数,你可以沿着uniq()非常简单地做到这一点:varobjUnion=function(array1,array2,matcher){varconcated=array1.concat(array2)retu

javascript - 我如何存储以某种方式保存的 javascript 数组对象,以便我以后可以使用它

这个问题在这里已经有了答案:Javascript-Storingarrayofobjectsinhiddenfield(4个答案)关闭4年前。我的情况如下:我有一个id选择页面,用户可以从页面上显示的id中选择id。当用户选择id时,我将它们作为逗号分隔值存储在隐藏的输入字段中。我有一个按钮,点击它会弹出一个对话框,然后显示所选的ID。此处显示的ID是我从隐藏字段中获取的。现在我需要存储产品ID和名称。所以在这种情况下我应该怎么做,因为现在我无法将此数据结构保存在隐藏的输入字段中。即使我使用javascript数组,我如何保存该数组并在将来使用它来显示。是否可以将数组对象保存在隐藏的输

Javascript 在数组中搜索一个值并获取它的键

我想做一个像这样工作的函数:functionarraySearch(array,valuetosearchfor){//somecode}如果它在数组中找到值,它将返回找到值的键。如果有多个结果(多个键),或根本没有结果(未找到),则该函数将返回FALSE。我找到了这段代码:functionarraySearch(arr,val){for(vari=0;i并像这样使用它:varresultofarraycheck=arraySearch(board,chosen);if(resultofarraycheck===false){document.getElementById(button

javascript - 按数组中的多个属性对对象进行分组,然后求和它们的值

Groupingelementsinarraybymultipleproperties是最接近我的问题的匹配项,因为它确实按数组中的多个键对对象进行分组。问题是此解决方案不会汇总属性值然后删除重复项,而是将所有重复项嵌套在二维数组中。预期行为我有一个对象数组,必须按shape和color分组。vararr=[{shape:'square',color:'red',used:1,instances:1},{shape:'square',color:'red',used:2,instances:1},{shape:'circle',color:'blue',used:0,instances

javascript - 在 jquery 中创建一个关联数组

这是我目前所拥有的,鞋子类型是Boot、惠灵顿、皮革、运动鞋(按此顺序)我想遍历并分配值,所以我有类似的东西varshoeArray={boots:'3',wellingtons:'0',leather:'1',trainers:'3'};目前我只得到一个{3,0,1,3}数组,我可以使用它但不是很有帮助。functionshoe_types(){varshoeArray=[];$('[type=number]').each(function(){$('span[data-field='+$(this).attr('id')+']').text($(this).val());shoeA

javascript - Angular 6按日期排序对象数组

我尝试为我的Angular6应用程序按日期对数组对象进行排序。数据具有字符串格式。我想知道是否有一个现有的模块可以在Angular中执行排序,或者我们必须在Typescript中构建它的排序功能。Angular模板数组[{CREATE_TS:"2018-08-1517:17:30.0",Key1:"Val1",Key2:"Val2",},{CREATE_TS:"2018-08-1517:25:30.0",Key1:"Val1",Key2:"Val2",},{CREATE_TS:"2018-08-1517:28:30.0",Key1:"Val1",Key2:"Val2",}]