2016-04-03 64 views
-1

我有一个具有空字段的数组。 格外它看起来如下:
JavaScript - 带空字段的反向数组并将其添加到旧数组中

array() {[4] => 3,[8] => 6,[17] => 24} 

我使用这种方式,因为我画它的图形。举个例子:在4厘米处,图表的高度为3厘米。等等。

现在问题是公式只计算一半的值,因为图的第二部分只是镜像。所以我需要删除数组的最后部分,然后颠倒其余的部分,同时保持它们与原始数组中的删除值的距离。
我需要一个算法,可以为我计算这个。

array() {[26] =>6, [30] => 3} 
+1

我不明白你将第一个数组转换成第二个数组的过程。 26和30从哪里来? – 2016-04-03 05:12:04

回答

0

我觉得一个数组不为这个伟大的数据类型,因为你可能有潜在的数千undefined值的,但填充缺失值的排列是相当容易的。您只需向后遍历数组,并将遇到的值推送到数组。

var ar = [/*your input*/]; 

/* ar.length-1 would be the last position of your array 
    so you want to go from position ar.lenght-2 */ 
for (var i = ar.length-2;i>=0;i--){ar.push(ar[i])} 

改为使用对象可能会更好,因此您可以使用代表图形节点的键值对。

0

不确定它是否完美工作,但遵循逻辑。可以说,你的原始数组是a

a.fill(0).concat(a.reverse().slice(1)); 

首先反转原始数组,并删除第一个元素(它是原始数组的最后一个元素)。然后用相反的数字连接填充零原始数组(删除所有值,您可以填入未定义或其他值)。繁荣,你会得到你的新阵列。