我有两个数组。
我想要一个包含每个数组项颜色编码的跨度的 div
- array1 中的内容为红色,
- array2 中的内容为蓝色
- 两者中的内容都是淡紫色的
问题我如何快速从独特到合并,如预期的输出?我不介意使用 diff 对 div 进行后期处理,只要它很快。
注意:真实数组的内容不包含任何类名,因此使用该内容的解决方案不是我想要的。我正在考虑在差异之后进行某种比较,或者希望使用过滤器/映射更聪明的东西
var red = ["01-red", "11-red", "01-in-both", "03-red", "02-in-both"];
var blue = ["10-blue","01-in-both","04-blue","02-in-both","02-blue"];
var both = red.concat(blue);
var unique = $.unique(both.slice(0)); // copy since unique destroys source
unique.sort();
$.each(unique,function(_,item) {
$("#res").append($('<span>').html(item)).append('<br>');
});
$.each(red,function(_,item) {
$("#res1").append($('<span class="red">').html(item)).append('<br>');
});
$.each(blue,function(_,item) {
$("#res1").append($('<span class="blue">').html(item)).append('<br>');
});
预期输出为
<div>
<span class="purple">01-in-both</span><br>
<span class="red" >01-red</span><br>
<span class="blue" >02-blue</span><br>
<span class="purple">02-in-both</span><br>
<span class="red" >03-red</span><br>
<span class="blue" >04-blue</span><br>
<span class="blue" >10-blue</span><br>
<span class="red " >11-red</span><br>
</div>