asp中数组去重,数组去重的5种方法前端

http://www.itjxue.com  2023-01-04 15:44  来源:未知  点击次数: 

求ASP vb版数组去重函数

Function array_unique(ByRef srcArray)

If Ubound(srcArray) = 0 Then '小于2个不用去重

array_unique = srcArray

Exit Function

End If

'这里用字典,带key=value映射,比较方便

Dim dict1: Set dict1 = Server.CreateObject("Scripting.Dictionary")

Dim dictWillDel: Set dictWillDel = Server.CreateObject("Scripting.Dictionary")

Dim i

For i = 0 To Ubound(srcArray) '循环要去重的数组

If dict1.Exists(srcArray(i)) Then 'dict1里面已经有这个值了,说明这个值有重

dictWillDel.Add i '把要去掉的元素的下标记录到dictWillDel里

Else '至目前为止没有重复

dict1.Add srcArray(i) '那就记下来,再碰到这个值就说明有重复了

End If

Next

Dim newArray: Redim newArray(0) '建立一个新数组,把srcArray里面不需要去掉的值存进来,因为要在srcArray里面去掉一个元素不太方便

Dim n: n = 0

For i = 0 To Ubound(srcArray)

If Not dictWillDel.Exists(i) Then '这个下标在dictWillDel里没有,说明不用删除这项

'那就存下来

Redim Preserve newArray(n)

newArray(n) = srcArray(i)

n = n + 1

End If

Next

array_unique = newArray

srcArray = newArray

End Function

asp随机从数据库里提取并去重分割关键词是怎么做到的?

'...其他代码略...

randomize

rs.open?"select?top?2?*?from?表名?order?by?rnd(-id-"??rnd??")",conn,1,1?'随机取2记录

s?=?""

do?until?rs.eof??'循环取记录

????ss?=?split(rs("tag"),?",")?'按逗号分割

????for?i?=?0?to?ubound(ss)

????????if?instr(","??s??",",?","??ss(i)??",")?=?0?Then?'如果s中不存在就添加

????????????if?s""?then?s?=?s??","

????????????s?=?s??ss(i)

????????end?if

????next

????rs.movenext

loop

rs.close

ss?=?split(s,?",")??'把去重后的s分割为数组

for?i?=?0?to?ubound(ss)

????response.write?"a?href='#'"??ss(i)??"/a"??'链接地址自己搞定

next

'...其他代码略...

数组去重是什么?

去重,通常为去重计算、页面去重。

去重计算指在不同的时间维度内,重复一个行为产生的数据只计算一次,按照时间维度去重包括按小时去重、按日去重、按周去重、按月去重或按自选时间段去重。

例如:访客数的去重计算是,同一个访客在所选时间段内产生多次访问,只记录该访客的一次访问行为,访客数进记录为1。若选择的时间维度为“按天”,则同一个访客在当日内产生的多次访问,访客数记录为1。

数组的注意事项:

1、 数组中每个元素的数据类型必须相同,对于inta[4],每个元素都必须为 int。

2、 数组长度 length?最好是整数或者常量表达式,

3、 访问数组元素时,下标的取值范围为 0 ≤ index length。

ASP如何过滤数组内重复内容

dim a(4)

a(0)=1

a(1)=1

a(2)=2

a(3)=2

a(4)=3

for n=0 to ubound(a)-1

for s=1 to ubound(a)

if a(s)=a(n) then

a(n)=""

end if

next

next

a_new=filter(a,"")‘把a数组里面是空值的全部删掉,然后重新组合成一个a_new数组。

for n=0 to ubound(a_new)’打印出a_new数组。

response.write a_new(n)"br"

next

说明:a_new是新生成的数组,去掉了a数组里面被清空的那些,重新生成了一个开头角标是0的a_new数组。

Asp.Net初学小结 判断数组中是否有重复的数据

//数组去重

var arr = [1,3,5,6,1,4,2,6,7];

var newArr = [];

for(var i in arr) {

if(newArr.indexOf(arr[i]) == -1) {

newArr.push(arr[i])

}

}

console.log(newArr)

判断是否有重复数据的话,只要判断arr和newArr是否相等就可以

(责任编辑:IT教学网)

更多

推荐软件水平考试文章