如果扩展名都是一样的,或者不在乎扩展名的话~<script type="text/javascript">
var str = "large_aa.gif#small_aa.gif#large_bb.gif#small_cc.gif#large_cc.gif#large_dd.gpg#small_dd.gif#small_ee.gif";var arr = str.split("#");
var arrTemp = new Array();
var arrResult = new Array();
var sign = false;
var index = 0;
for (var i = 0; i < arr.length; i++)
{
arrTemp[i] = arr[i].substr(0, arr[i].indexOf("."));//截取文件名
}
for (var i = 0; i < arrTemp.length; i++)
{
sign = false;
for (var j = i+1; j < arrTemp.length; j++)
{
//判断_后的部分是否相同
if ( arrTemp[i].substr(arrTemp[i].indexOf("_")) == arrTemp[j].substr(arrTemp[j].indexOf("_")) )
{
//既有large也有small,留下small
if (arrTemp[i].substr(0, arrTemp[i].indexOf("_")) == "small")
{
arrResult[index] = arr[i];
}
else
{
arrResult[index] = arr[j];
}
index++;
sign = true;
break;
}
}
if (!sign)//只有large或只有small
{
//判断是否已经记录
for (var j = 0; j < arrResult.length; j++)
{
if (arr[i] == arrResult[j])
{
sign = true;
}
}
if (!sign)
{
//尚未记录,留下large
if (arrTemp[i].substr(0, arrTemp[i].indexOf("_")) == "large")
{
arrResult[index] = arr[i];
index++;
}
}
}
}
var result = arrResult.join("#");alert(result);
</script>

解决方案 »

  1.   

    修改了一下,改正错误,减少一个变量
    <script type="text/javascript">
    var str = "large_aa.gif#small_aa.gif#large_bb.gif#small_cc.gif#large_cc.gif#large_dd.gpg#small_dd.gif#small_ee.gif";var arr = str.split("#");
    var arrResult = new Array();
    var sign = false;
    var index = 0;for (var i = 0; i < arr.length; i++)
    {
    sign = false;
    for (var j = i+1; j < arr.length; j++)
    {
    //判断_后的部分是否相同
    if ( arr[i].substring(arr[i].indexOf("_"), arr[i].indexOf(".")) == arr[j].substring(arr[j].indexOf("_"), arr[j].indexOf(".")) )
    {
    //既有large也有small,留下small
    if (arr[i].substring(0, arr[i].indexOf("_")) == "small")
    {
    arrResult[index] = arr[i];
    }
    else
    {
    arrResult[index] = arr[j];
    }
    index++;
    sign = true;
    break;
    }
    }
    if (!sign)//只有large或只有small
    {
    //判断是否已经记录
    for (var j = 0; j < arrResult.length; j++)
    {
    if ( arr[i].substring(arr[i].indexOf("_"), arr[i].indexOf(".")) == arrResult[j].substring(arrResult[j].indexOf("_"), arrResult[j].indexOf(".")) )
    {
    sign = true;
    break;
    }
    }
    if (!sign)
    {
    if (arr[i].substring(0, arr[i].indexOf("_")) == "large")
    {
    arrResult[index] = arr[i];
    index++;
    }
    }
    }
    }
    var result = arrResult.join("#");
    alert(result);
    </script>