JS去除数组中重复的数字

JavaScript027

JS去除数组中重复的数字,第1张

利用js中对象的特性(对象中属性具有唯一性)将数组中重复的数值项去掉。

例如数组: <code>var arr = [35,2,1,2,10,2,3,5,10,13]</code>

1.将数组转换为对象

var toObject = function (arr) { var obj = {}// 声明一个对象容器 var jfor(var i = 0j = arr.length, i<ji++){ //将数组中的值作为对象的键,然后给个值 obj[arr[i]] = true} return obj}

2.将对象转化为数组

function keys(obj){ var arr = []// 私有对象 for(var attr in obj) { // 判断对象是否有attr属性 if(obj.hasOwnProperty(attr)){ arr.push(attr)// 将对象属性的键放到数组中 } } return arr}

3.调用这两个方法

function uniq(newArr) { return keys(toObject(newArr))}

这样就可以把数组中重复的数字去掉了。

使用<code>alert(uniq(arr))</code>测试一下

<html>

<head>

<title>change BG color</title>

</head>

<script>

function btnAction(){

var temp

var temp1=new Array()

var x=0

var pr

temp=[1,2,4,4,5,6,8,8,9]

for(var i=1i<10i++)

{

if(x!=0){

for(var l=0l<temp1.length+1l++){

if(temp1[l]==temp[i-1]){

pr=false

returnFunction(pr)

return

}

}

}

temp1[x]=temp[i-1]

x++

pr=true

}

}

function returnFunction(pr)

{

alert(pr)

}

</script>

<body>

<input type="button" value="选择" onclick="btnAction()" id="xz"/>

</body>

</html>

代码如下:

// 纯手打,不谢。

var randoms=[]

while (true)

{

    var isExists = false

    // 获取一个10–100范围的数

    var random = parseInt(10 + (90 - 10) * (Math.random()))

    // 判断当前随机数是否已经存在

    for (var i = 0 i < randoms.length i++) {

        if (random === randoms[i]) {

            isExists = true

            break

        }

    }

    // 如果不存在,则添加进去

    if (!isExists)

        randoms.push(random)

    // 如果有10位随机数了,就跳出

    if (randoms.length === 10)

        break

}

结果图:

关于js

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

在1995年时,由Netscape公司的Brendan Eich,在网景导航者浏览器上首次设计实现而成。因为Netscape与Sun合作,Netscape管理层希望它外观看起来像Java,因此取名为JavaScript。但实际上它的语法风格与Self及Scheme较为接近。

为了取得技术优势,微软推出了JScript,CEnvi推出ScriptEase,与JavaScript同样可在浏览器上运行。为了统一规格,因为JavaScript兼容于ECMA标准,因此也称为ECMAScript。