Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
Javascript 分离阵列并将其指定给角度方向上的不同参数_Javascript_Angular - Fatal编程技术网

Javascript 分离阵列并将其指定给角度方向上的不同参数

Javascript 分离阵列并将其指定给角度方向上的不同参数,javascript,angular,Javascript,Angular,我有一个数组,我在其中发送一个多边形的坐标。每个多边形仅由4个点组成。如下图所示 { “坐标”:{ “多边形”:[ [[30,75],[43,71],[48,95],[23,107]], [[76,53],[169,52],[147,89],[83,108]], [[30,75],[43,71],[48,95],[23,107]], [[76,53],[169,52],[147,89],[83,108]], [[178,67],[203,75],[194,134],[154,134]] ] }

我有一个数组,我在其中发送一个多边形的坐标。每个多边形仅由4个点组成。如下图所示

{
“坐标”:{
“多边形”:[
[[30,75],[43,71],[48,95],[23,107]],
[[76,53],[169,52],[147,89],[83,108]],
[[30,75],[43,71],[48,95],[23,107]],
[[76,53],[169,52],[147,89],[83,108]],
[[178,67],[203,75],[194,134],[154,134]]
]
}
}
我想分离出这些多边形,如下所示。如何动态获取它

{
“坐标”:{
“多边形”:[[30,75]、[43,71]、[48,95]、[23107],
“Polygon1”:[[76,53]、[169,52]、[147,89]、[83108],
“Polygon2”:[[30,75]、[43,71]、[48,95]、[23107],
“Polygon3”:[[178,67]、[203,75]、[194134]、[154134]]
}
}

您可以通过以下方式获得所需的结构:

const对象={
“坐标”:{
“多边形”:[
[[ 30, 75],[ 43, 71],[ 48, 95],[ 23,107]],
[[ 76, 53],[169, 52],[147, 89],[ 83,108]],
[[ 30, 75],[ 43, 71],[ 48, 95],[ 23,107]],
[[ 76, 53],[169, 52],[147, 89],[ 83,108]],
[[178, 67],[203, 75],[194,134],[154,134]]
]
}
};
//在下面的行中,如果仅“object”,则“…object”是可选的
//包含键“坐标”,不包含其他键。
const result={…对象,坐标:{};
object.Coordinates.Polygon.forEach((coords,i)=>{
结果.坐标[`Polygon${i}`]=coords;
});

控制台日志(结果)您可以通过以下方式获得所需的结构:

const对象={
“坐标”:{
“多边形”:[
[[ 30, 75],[ 43, 71],[ 48, 95],[ 23,107]],
[[ 76, 53],[169, 52],[147, 89],[ 83,108]],
[[ 30, 75],[ 43, 71],[ 48, 95],[ 23,107]],
[[ 76, 53],[169, 52],[147, 89],[ 83,108]],
[[178, 67],[203, 75],[194,134],[154,134]]
]
}
};
//在下面的行中,如果仅“object”,则“…object”是可选的
//包含键“坐标”,不包含其他键。
const result={…对象,坐标:{};
object.Coordinates.Polygon.forEach((coords,i)=>{
结果.坐标[`Polygon${i}`]=coords;
});

控制台日志(结果)
您可以使用
Math.ceil
查找中间索引,然后使用
拼接
,方法如下:

var input={“坐标”:{“多边形”:[[30,75]、[43,71]、[48,95]、[23107]、[76,53]、[169,52],
[147,89],[83,108]],[[30,75],[43,71],[48,95],[23,107]],[[178,67],[203,75],[194,134],[154,134]]]}}
常量列表=输入.坐标.多边形.平面(1);
const index=Math.ceil(list.length/4);
让结果={“坐标”:{};
对于(设i=3;i>=0;i--){
如果(i==0)result.Coordinates.Polygon=list.splice(-index);
else result.Coordinates[“Polygon”+i]=list.splice(-index);
}

console.log(result)
您可以使用
Math.ceil
查找中间索引,然后以以下方式使用
拼接

var input={“坐标”:{“多边形”:[[30,75]、[43,71]、[48,95]、[23107]、[76,53]、[169,52],
[147,89],[83,108]],[[30,75],[43,71],[48,95],[23,107]],[[178,67],[203,75],[194,134],[154,134]]]}}
常量列表=输入.坐标.多边形.平面(1);
const index=Math.ceil(list.length/4);
让结果={“坐标”:{};
对于(设i=3;i>=0;i--){
如果(i==0)result.Coordinates.Polygon=list.splice(-index);
else result.Coordinates[“Polygon”+i]=list.splice(-index);
}

console.log(result)
输入数组有5个子数组,或者我错了?@GiovanniEsposito听起来像索引1和3有相同的值,因此它们在第一次出现时被聚合。很不清楚though@briosheje
1等于3
2等于4
。输出将包含
5
3
。它是怎样的
4
?@briosheje yes不清楚,因为他想要4个子数组,但输入包含5个数组。我认为第四个子数组是一个打字错误。你能详细说明一下为什么要进行此更改吗?将其作为数组访问最有意义。输入数组有5个子数组,否则我错了?@GiovanniEsposito听起来像索引1和索引3具有相同的值,因此它们在第一次出现时聚合。很不清楚though@briosheje
1等于3
2等于4
。输出将包含
5
3
。它是怎样的
4
?@briosheje yes不清楚,因为他想要4个子数组,但输入包含5个数组。我认为第四个子数组是一个打字错误。你能详细说明一下为什么要进行此更改吗?将其作为数组访问最有意义。
result.Coordinates[`Polygon${i==0?''':i}`]=coords
-如果要避免Polygon0@Sam对。在这个答案中我没有这样做,因为你会为自己创建一个奇怪的异常,其中一个属性没有编号,而其他所有属性都没有编号。较短的将是
result。坐标[`Polygon${i | |''''}`]=coords
result。坐标[`Polygon${i==0?''':i}`]=coords
-如果要避免Polygon0@Sam对。在这个答案中我没有这样做,因为你会为自己创建一个奇怪的异常,其中一个属性没有编号,而其他所有属性都没有编号。较短的是
result.coordinations[`Polygon${i | |'''''}]=coords