Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何提高typescript/javascript数组的内存效率?_Javascript_Typescript_Memory_Push_Memory Efficient - Fatal编程技术网

如何提高typescript/javascript数组的内存效率?

如何提高typescript/javascript数组的内存效率?,javascript,typescript,memory,push,memory-efficient,Javascript,Typescript,Memory,Push,Memory Efficient,推似乎并没有那个内存效率,有什么办法可以提高吗 更新: 我认为改进它不是通过推送,而是使用float32array,有什么建议吗?是什么让你觉得它效率低下?它怎么没有内存效率?你在这里分配了一堆对象。您的意思是为现有对象添加别名吗?您的意思是预分配阵列吗?push会在数组中分配空间,但这正是将对象放入数组时发生的情况。无关主题:我可以说ret2.unshift很慢,因为它在^2上的循环中,就像这样。请改用推送,然后在最后使用反转。@ggorlen是否预分配数组使其更好?很抱歉,我基本上不知道您要

推似乎并没有那个内存效率,有什么办法可以提高吗

更新:


我认为改进它不是通过推送,而是使用float32array,有什么建议吗?

是什么让你觉得它效率低下?它怎么没有内存效率?你在这里分配了一堆对象。您的意思是为现有对象添加别名吗?您的意思是预分配阵列吗?push会在数组中分配空间,但这正是将对象放入数组时发生的情况。无关主题:我可以说ret2.unshift很慢,因为它在^2上的循环中,就像这样。请改用推送,然后在最后使用反转。@ggorlen是否预分配数组使其更好?很抱歉,我基本上不知道您要完成什么,问题到底是什么,等等,因此很难/不可能提供很多建议。请澄清一下。这是一个好的、易读的解决方案,肯定是一个改进,尽管它对我来说有点太花哨了:它需要深入的JavaScript知识来解析它。然而,初衷是显而易见的,所以对我来说没关系。但是:为什么你认为它更节省内存?我怀疑这是真的,所以我期待着你的解释。这是一个诚实而好奇的问题:说服我!也可以添加一个解释。如果这样做,社区会得到更积极的回答。
const ret1 = [];
const ret2 = [];

for (const points of pointsList) {
    ret1.push({ x: points.right.x, y: points.right.y});
    ret2.unshift({ x: points.left.x, y: points.left.y});
}
const ret1 = pointsList.map(({right: {x,y}}) => ({x,y}));
const ret2 = pointsList.reverse().map(({left: {x,y}}) => ({x,y}));