javascript - 如何对数组的对象进行分组和分离
问题描述
如何对来自服务器的数组对象进行分组和分离。像这样的数组:(MOVINGSTATEs
这表示停止和m
移动。XPOINT 和 YPOINT 这表示汽车的经纬度。)
[{MOVINGSTATE: "s",XPOINT:53.9172866,YPOINT: 26.518275},
{MOVINGSTATE: "s",XPOINT: 53.9172866,YPOINT: 26.518275},
{MOVINGSTATE: "m",XPOINT: 54.0215383,YPOINT: 26.5275599},
{MOVINGSTATE: "m",XPOINT: 54.0102666,YPOINT: 26.4989583},
{MOVINGSTATE: "s",XPOINT: 54.0016599,YPOINT: 26.5478316},..]
我想如果一些MOVINGSTATE
Continuous s
goto new array 以及何时MOVINGSTATE
更改为m
goto new array 并再次MOVINGSTATE
更改为s
goto new array。另一个主数组的所有这些新数组对象。我用loadash
var aaa = _loadash.groupBy(props,'MOVINGSTATE')
但输出这个:
{m:Array(2),s:Array(3)}
我想要这样的输出:
[
[
{MOVINGSTATE: "s",XPOINT:53.9172866,YPOINT: 26.518275},
{MOVINGSTATE: "s",XPOINT: 53.9172866,YPOINT: 26.518275}
],
[
{MOVINGSTATE: "m",XPOINT: 54.0215383,YPOINT: 26.5275599},
{MOVINGSTATE: "m",XPOINT: 54.0102666,YPOINT: 26.4989583}
],
[
{MOVINGSTATE: "s",XPOINT: 54.0016599,YPOINT: 26.5478316}
]
]
谢谢你的帮助
解决方案
试试这个:
let arr =
[{MOVINGSTATE: "s",XPOINT:53.9172866,YPOINT: 26.518275},
{MOVINGSTATE: "s",XPOINT: 53.9172866,YPOINT: 26.518275},
{MOVINGSTATE: "m",XPOINT: 54.0215383,YPOINT: 26.5275599},
{MOVINGSTATE: "m",XPOINT: 54.0102666,YPOINT: 26.4989583},
{MOVINGSTATE: "s",XPOINT: 54.0016599,YPOINT: 26.5478316}];
let result = arr.reduce( (accumulator, cur) => {
const key = cur["MOVINGSTATE"];
const keyExists = accumulator.find(obj => obj.key === key);
if (!keyExists) {
accumulator.push({key,value:[cur]});
return accumulator;
} else if(accumulator[accumulator.length -1] && accumulator[accumulator.length -1].key === key){
accumulator[accumulator.length -1].value.push(cur);
return accumulator;
} else {
accumulator.push({key,value:[cur]});
return accumulator;
}
}, [])
.map(obj => obj.value)
推荐阅读
- ios - 无法转换类型错误 Xcode 11 的值
- azure - 从 Azure Functions 访问 Azure Key Vault 时访问被拒绝
- scala - 无论如何使用ScalaMock在Scala测试中通过注入来模拟单例类?
- java - 使用 Spring 在整个应用程序中保存数据的最佳实践
- python - While Loop 无法解包 Iterable
- floating-point - 十进制值“41000”如何转换为浮点值“0.0201”?
- objective-c - 未调用 NSURLConnection 委托方法
- reactjs - React use-dark-mode 在组件中部署
- django - TinyMCE 不接受 content_css 初始化参数
- reactjs - React 教程的故事书,无法安装 npx -p @storybook/cli sb init