function removeDoubles(src, target) {
target = target || [];
var names = Object.create(null);
var pos = 0, qnum = 0;
for (var i = 0, len = src.length; i < len; i += 2) {
if (!names[src[i]]) {
names[src[i]] = true;
target[pos++] = src[i];
target[pos++] = ++qnum;
}
}
target.length = pos;
return target;
}
var arr = 'A,1,B,2,C,3,A,4'.split(',');
alert(removeDoubles(arr).join(','));
если надо удалить дубли в исходном массиве, то
removeDoubles(arr, arr)