我有以下动态生成的数组:
,<div id="layer0" style="left: 470px; top: 286px;">Some Text</div>
,<div id="layer0" style="font-size: 68px; left: 70px; top: 286px; ">SomeText</div>
,<div id="layer1" style="font-size: 18px; left: 60px; top: 286px; ">SomeText</div>
,<div id="layer2" style="font-size: 18px; left: 50px; top: 286px; ">SomeText</div>
前两个条目不完全重复,但具有相同的“id”:layer0。第二个是不同的,因为它具有css字体大小的适当性。
如何删除此数组中具有重复“id”但可能在确切形式上有所不同的第一个。
阵列通过以下方式组合在一起:
var allcode = $.merge([oldarray],[newarray])
oldarray
中的某些副本我需要摆脱。
谢谢。
答案 0 :(得分:1)
我认为你应该更加谨慎地组合阵列,而不是将它们混合在一起并在以后清理。
function matchId(htmlstring){
var match = htmlstring.match( new RegExp(/id=\"([^\"]+)\"/i) );
if (match && match[1]) {
return match[1];
}
return '';
}
for (var j=0; j < oldarray.length; j++) {
var exists = false;
for (var k=0; k < newarray.length; k++) {
var newId = matchId(newarray[k]);
var oldId = matchId(oldarray[j]);
if (newId == oldId) {
// element already exists.
exists=true;
break;
}
}
if (!exists) {
newarray.push( oldarray[j] );
}
}