javascript – 使用两个不同的数组创建一个分组数组
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 使用两个不同的数组创建一个分组数组,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1579字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 使用两个不同的数组创建一个分组数组](/upload/InfoBanner/zyjiaocheng/796/b5c6a003b7ca4c29818a8e6da71a8c9e.jpg)
我有两个数组:
array1 = [{
"type":"test",
"name":"name1"},
{
"type":"dev",
"name":"name2"}]
array2=[{
"type":"test",
"name":"name3"},
{
"type":"dev",
"name":"name4"},
{
"type":"prod",
"name":"name5"}]
我想用“type”对两个数组进行分组,并创建一个像这样的新数组:
finalArray=[{
"type":"test",
"info":[{
"type":"test",
"name":"name1"}],
[{
"type":"test",
"name":"name3"
}]},
{
"type":"dev",
"info":[{
"type":"dev",
"name":"name2"}],
[{
"type":"dev",
"name":"name4"}]},
{
"type":"prod",
"info":[],
[{
"type":"prod",
"name":"name5"}]
}]
无论如何,我可以使用javascript,angularjs2,lodash,jquery实现这一点.我可以按照using lodash .groupBy. how to add your own keys for grouped output?中的提法分组和创建新对象
但唯一的事情总是我想从第二个数组推送“info”的index = 1中的数据,第一个数据推送到index = 0.如果任何数组没有“type”,那么“info”数组应该有空/ null值.
解决方法:
可以在javascript中实现您想要的结果,或者使用像lodash这样的帮助器.
你问题的最后一部分很难理解.如果数组没有“类型”,您将如何对它们进行分组.请提供更清晰的解释或修改您的预期输入和输出.
[更新]
谢谢你的解释.这是使用普通javascript的解决方案.
// get uniques type from two arrays
const uniqueTypes = new Set(array1
.concat(array2)
.map(x => x.type));
// loop the types, find item in both array
// group it
let result = Array.from(uniqueTypes).reduce((acc, curr) => {
const item1 = array1.find(x => x.type === curr);
const item2 = array2.find(x => x.type === curr);
const info1 = item1 ? [item1] : [];
const info2 = item2 ? [item2] : [];
acc = acc.concat({ type: curr, info: [info1, info2] });
return acc;
}, []);
console.log(result);
jsbin这里:https://jsbin.com/mobezogaso/edit?js,console
内容总结
以上是互联网集市为您收集整理的javascript – 使用两个不同的数组创建一个分组数组全部内容,希望文章能够帮你解决javascript – 使用两个不同的数组创建一个分组数组所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。