Javascript 仅在一个数组中将不同的元素转换为数组
我试图在一个数组中显示多个元素。(见示例) 但是我不知道怎么做 谢谢你的帮助 我显示我的脚本:Javascript 仅在一个数组中将不同的元素转换为数组,javascript,Javascript,我试图在一个数组中显示多个元素。(见示例) 但是我不知道怎么做 谢谢你的帮助 我显示我的脚本: ****Du code****** var color = []; var risk = []; if(Operational.length == group.name.length){ color = "green"; risk = "Operational"; console.log(group.name); // toto // tata // titi } if(
****Du code******
var color = [];
var risk = [];
if(Operational.length == group.name.length){
color = "green";
risk = "Operational";
console.log(group.name);
// toto
// tata
// titi
}
if(Test.length > 0){
color = "";
risk = "";
}
if(PartialOutage.length > 0){
color = "orange"
risk = "Partial";
}
if(MajorOutage.length > 0){
color = "red";
risk = "Major ";
}
var Group = new Array(color,risk,group.name);
Groups.push(Group);
Groups.sort();
}
});
console.log(Groups);
}
**** Du code *****
实际结果:
[ [ 'green', 'Operational', 'toto' ],
[ 'green', 'Operational', 'tata' ],
[ 'green', 'Operational', 'titi' ],
[ 'orange', 'Partial', 'test' ],
[ 'red', 'Major ', 'test2' ] ]
预期结果:
[ [ 'green', 'Operational', 'toto,tata,titi' ],
[ 'orange', 'Partial', 'test' ],
[ 'red', 'Major ', 'test2' ] ]
检查此项。按照预期格式使用重新创建最终数组值
a
b
子数组与新创建的数组a
forloop
a
中存在子数组值,则合并两个数组并过滤重复的//检查代码段中的注释
var a=[
[‘绿色’、‘运行’、‘toto’],
[‘绿色’、‘可操作’、‘塔塔’],
[‘绿色’、‘可操作’、‘提提’],
[‘橙色’、‘部分’、‘测试’],
['red'、'Major'、'test2']
];
a=a.reduce(函数(a,b){
对于(变量i=0;i 0){
a、 forEach(函数(k,ind){
if(k.indexOf(b[i])>-1{//if包含相同的参数
k=k.concat(b);//连接两个数组
var j=k.filter((l,n)=>k.filter(m=>m==l).length==1.filter(o=>o)
a[ind]=k.filter((l,n)=>k.indexOf(l)!=n);//过滤器重复
a[ind].push(j.join(','))
brk=true;//然后中断语句
检查=正确;
}否则{
check=false;//其不包含任何arg直接将子项推入新数组
}
})
如果(brk){
打破
}
如果(!检查){
a、 推动(b)
}
}否则{
a、 推(b);
}
}
返回//重新创建的新数组返回
}, []);
控制台日志(a)
因为您的风险和颜色之间似乎有直接关系,所以您每次似乎只有3个数组,为什么不为这些数组指定3个命名变量operational
、partial
和major
,并向它们添加项目,而不是每次创建匿名数组?您的问题缺少循环。我认为OP应该学会将数据正确地存储在变量中,而不是用他们可能并不真正理解的复杂解决方案对其进行后期处理。我已经看过你的评论了。我只是将结果转换为预期结果,这非常感谢您的帮助,但可以在一个元素中添加toto tata和titi。(像这样:“托托,塔塔,提提”