asp 删除数组中的一元素

数组结构如下:123,A|234,B|455,C|567,D
现在我要删除其中一条 其中一条以|区分

stra="123,A|234,B|455,C|567,D "
arrya=split(stra,"|")
stra=""
delstr="455,C"
for i=0 to ubound(arrya)
if arrya(i)<>delstr then
if stra<>"" then
stra=stra & "|" & arrya(i)
else
stra=arrya(i)
end if
end if
next

上边的是删除等于指定值的一组,当然也可以指定删除第一个元素(注:第一个的下标是0 第n个下标是n-1)
stra="123,A|234,B|455,C|567,D "
arrya=split(stra,"|")
stra=""
delid=2
for i=0 to ubound(arrya)
if i<>delid-1 then
if stra<>"" then
stra=stra & "|" & arrya(i)
else
stra=arrya(i)
end if
end if
next
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-23
<%
'一个删除数组内元素的函数
Function moveR(farray,sarray)
a = Split(farray, ",")
Set dic = CreateObject("Scripting.Dictionary")
For k=0 To UBound(a)
   If a(k)<> "" Then dic.Add "_" & a(k), a(k)
Next
a = Split(sarray, ",")
For k=0 To UBound(a)
   If a(k)<> "" Then
    If dic.Exists("_" & a(k)) Then
     dic.Remove "_" & a(k)
    End If
   End If
Next
items = dic.Items()
Set dic = Nothing
moveR=Join(items, ",")
End Function
n1 = "a,b,1,11,12,13,14,15,16,17,19,20,22" 
n2 = "a,1,12,14,18,19,20"
response.write mover(n1,n2)
'用法
n1 = "a,b,1,11,12,13,14,15,16,17,19,20,22" 
n2 = "a,1"
response.write mover(n1,n2)
'结果是b,11,12,13,14,15,16,17,19,20,22
%>

原理:Split分隔逗号得出数组后,循环,跟N2同理,

循环再组装数组,值等于N2的值时,就不组进数组里。

本回答被网友采纳
第2个回答  2016-03-17
<html xmlns="">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body>
js删除数据组中一再的元素
<script language="javascript教程">
var fruit = new Array(3);
fruit[0] = new Array("苹果", "a");
fruit[1] = new Array("苹果", "a");
fruit[2] = new Array("橘子", "2");
for (i=0; i < fruit.length; i++) {
for (j=0; j < fruit[0].length; j++) {
document.write("fruit [", i, "][", j, "] = ", fruit[i][j],"");
}
document.write("");
}
</script>

</body>
</html>
<?
//下面是一段php删除数据组中一再的元素

//要领一,用php自带的array_flip超简朴
print_r(array_flip(array_flip($array)));

//操作自定函数来实现
function delsame(&$array)
{
$i = 0;
while(isset($array[$i]))
{
$j = $i + 1;
while(isset($array[$j]))
{
if($array[$i] == $array[$j]) //假如发明后头有一再的元素
{
delmember($array, $j); //把它删除
$j--; //从头搜查补上来的元素是否是一再的
}
$j ++;
}
$i ++;
}
}
//
$array = array(1,1,1,1,2,2,3);
//print_r(delsame( $array ) );
function delmember(&$array, $id)
{
$size = count($array);
for($i = 0; $i <$size - $id - 1; $i ++)
{
$array[$id + $i] = $array[$id + $i + 1];
}
unset($array[$size - 1]);
}

//一款asp的删除数组中一再元素的函数
<%
Function moveR(farray,sarray)
a = Split(farray, ",")
Set dic = CreateObject("Scripting.Dictionary")
For k=0 To UBound(a)
If a(k)<> "" Then dic.Add "_" & a(k), a(k)
Next
a = Split(sarray, ",")
For k=0 To UBound(a)
If a(k)<> "" Then
If dic.Exists("_" & a(k)) Then
dic.Remove "_" & a(k)
End If
End If
Next
items = dic.Items()
Set dic = Nothing
moveR=Join(items, ",")
End Function
n1 = "a,b,1,11,12,13,14,15,16,17,19,20,22"
n2 = "a,1,12,14,18,19,20"
response.write mover(n1,n2)
%>
第3个回答  2016-02-24
stra="123,A|234,B|455,C|567,D "
arrya=split(stra,"|")
stra=""
delstr="455,C"
for i=0 to ubound(arrya)
if arrya(i)<>delstr then
if stra<>"" then
stra=stra & "|" & arrya(i)
else
stra=arrya(i)
end if
end if
next

上边的是删除等于指定值的一组,当然也可以指定删除第一个元素(注:第一个的下标是0 第n个下标是n-1)
stra="123,A|234,B|455,C|567,D "
arrya=split(stra,"|")
stra=""
delid=2
for i=0 to ubound(arrya)
if i<>delid-1 then
if stra<>"" then
stra=stra & "|" & arrya(i)
else
stra=arrya(i)
end if
end if
next
第4个回答  2015-12-25
x=rs("x") 'x为数组参数
y="一元素"
z=replace(x,y,"") '新数组
相似回答