草庐IT

Array-Merge

全部标签

javascript - Typescript Convert Object to Array - 因为 *ngFor 不支持对象的迭代

我可不想这样用for循环把Object转成Array!如果加倍处理并降低应用程序的性能(我正在使用Ionic2和Typescript,以及Firebase)for(输入数据){array.push(值);是否有使用*ngFor迭代对象本身(如附图所示)的解决方案。或者我可以将此对象(如附图所示)转换为数组,以便可以在*ngFor中进行迭代。 最佳答案 您可以使用Object.keys(obj)来获取命名索引。这将返回一个数组结构,您可以进一步使用/自定义它。用于遍历对象值的示例可能如下所示varpersons={john:{age:

javascript - json 数组 : How to create new array elements?

我的目标是得到一个像这样的json数组:varargs=[{name:'test',value:1},{key:'test2',value:2}];我怎样才能得到下面的代码来构建一个像上面那样的数组?this.dependentProperties=[];//arrayfunctionaddDependentProperty(depName,depValue){dependentProperties.push(newArray(depName,depValue));}通过使用push方法,我最终得到了一个像这样的json符号:args:{[["test1",1],["test2",2]

javascript - 当 myarray 在一个框架中时,为什么 myarray instanceof Array 和 myarray.constructor === Array 都为 false?

所以下面的代码会发出两次错误警报:window.onload=function(){alert(window.myframe.myarrayinstanceofArray);alert(window.myframe.myarray.constructor===Array);}当页面中有一个名为“myframe”的iframe包含一个名为“myarray”的数组时。如果数组被移动到主页(而不是iframe),那么代码会像预期的那样发出两次true警报。有谁知道这是为什么吗? 最佳答案 functionisArray(o){return

javascript - 在 WebGL 中从 Float32Array 到 Uint16Array 的转换

我有Float32Array纹理,可以通过WebGL正确显示。但是,当我尝试将它们转换为Uint16Array时,问题出现了。这是我的转换部分。var_floatToHalfFloat=function(input,offset){varlargestHalf=Math.pow(2,30-15)*(1+1023/1024);varm=newArrayBuffer(4);varn=newFloat32Array(m);varo=newUint32Array(m);varf=0.0;for(vari=input.length-1-offset;i>=0;i--){n[0]=input[i]

javascript - 如果比较函数不可传递,Array.sort() 的行为如何?

我正在编写一种算法来对3D框数组进行排序,以便按从前到后的顺序进行绘制。有一种定义明确、稳定的方法来决定两个盒子中的哪个盒子在另一个盒子前面,所以我编写了一个函数来做到这一点,然后我将我的函数传递给Array.prototype.sort()以获得正确的绘制顺序。但也可能存在这样的框循环,即A>B、B>C和C>A都为真。这意味着整个列表没有明确定义的排序顺序,即使任何对的顺序都是明确定义的。在实践中,这种情况不太可能出现,如果出现,我可以忍受一两个盒子的顺序错误。但是,在这种情况下,是否存在可能对整个列表进行错误排序或崩溃的JS实现?16年11月10日更新现在项目已经完成,只是为了补充

JavaScript Array、Stack、Queue——这种特定 API 设计背后的动机是什么?

在我的日常工作中,我主要使用C#,偶尔使用javascript,所以请javascript大师不要粗暴地判断我的问题!Array通过提供push和pop方法实现Stack,但是peek不见了,为什么?(是的,实现起来很简单,但仍然)Array实现了Queue,但是操作被命名为push-shift或unshift-pop而不是enqueue和dequeue,为什么命名不同?这是受Python和Ruby启发的吗?为什么将Array、Stack和Queue的API合并到一个对象中,而不是分离接口(interface)并为其创建不同的对象?是因为实现便宜吗?从语义上讲,在许多语言(C#、C++

javascript - [].__proto__ === Array.prototype//=== [Symbol(Symbol.unscopables) : Object]?

定义一个实用函数来检查对象的原型(prototype)链(在Chrome中),我得到了数组。这样看来[].__proto__===Array.prototype//===[Symbol(Symbol.unscopables):Object]我理解第一个平等。我不知道第三项是什么,虽然我听说ES6将有Symbols。这个东西和Array.prototype是一样的吗?为什么会这样打印?编辑:chrome://版本信息:GoogleChrome40.0.2214.111(OfficialBuild)Revision6f7d3278c39ba2de437c55ae7e380c6b3641e9

javascript - Array.prototype 与 [] perf

我还没有真正有机会研究的快速问题。在调用/应用类型的上下文中使用时,哪个性能更高:Array.prototypevs[]?例如:functiontest1(){returnArray.prototype.splice.apply(arguments,[1,2]);}test1([1,2,3,4,5,6,7,8,9]);functiontest2(){return[].splice.apply(arguments,[1,2]);}test1([1,2,3,4,5,6,7,8,9]);我的想法:我会假设Array.prototype方式性能更高,因为原型(prototype)函数可以重用并

javascript - Javascript 中的凯撒密码使用 shiftChar() 函数和 Array.map() 方法

我正在尝试通过阅读大量在线教程来学习Javascript,并通过应对coderbyte上的挑战来进行练习。我在CaesarCipher挑战中遇到问题。该函数需要一个字符串和一个偏移量参数,然后返回每个字母字符按提供的偏移量移动的字符串(保留所有非字母字符)。我的shiftChar()函数正在运行,它将获取char和偏移量,并将仅对字母字符应用移位,并将返回新字符。现在已经完成了,我想我可以只获取原始字符串,将其拆分为一个数组,然后使用我的shiftChar()函数将该字符数组映射到一个新数组。但是,我无法让它工作,而且我似乎无法弄清楚原因。关于map方法我是否遗漏了什么?我的理解是ma

javascript - 是否使用 [array].filter 或 _.filter

我的项目包含underscorejs作为依赖项。在内部我需要做很多复杂的数组操作,基本上包括我映射、过滤或减少数组。我们在Array.prototype上有原生的map、filter、reduce方法。但是在underscorejs中也可以使用相同的方法。就我个人而言,使用原生方法对我来说更有意义,因为它比像_(array).filter(function(){})这样的包装对象感觉更自然_.filter(array,function(){}).请提出建议。 最佳答案 这确实是一个基于意见的问题。Lodash将为您提供更好的浏览器支