Js中去除数组中重复元素的几种方法

Js中去除数组中重复元素的几种方法,第1张

方法1:

[js] view plain copy

Arrayprototypemethod1 = function(){

var arr[]; //定义一个临时数组

for(var i = 0; i < thislength; i++){ //循环遍历当前数组

//判断当前数组下标为i的元素是否已经保存到临时数组

//如果已保存,则跳过,否则将此元素保存到临时数组中

if(arr1indexOf(this[i]) == -1){

arrpush(this[i]);

}

}

return arr;

}

方法2:

[js] view plain copy

Arrayprototypemethod2 = function(){

var h{}; //定义一个hash表

var arr[]; //定义一个临时数组

for(var i = 0; i < thislength; i++){ //循环遍历当前数组

//对元素进行判断,看是否已经存在表中,如果存在则跳过,否则存入临时数组

if(!h[this[i]]){

//存入hash表

h[this[i]] = true;

//把当前数组元素存入到临时数组中

arrpush(this[i]);

}

}

return arr;

}

方法3:

[js] view plain copy

Arrayprototypemethod3 = function(){

//直接定义结果数组

var arr[this[0]];

for(var i = 1; i < thislength; i++){ //从数组第二项开始循环遍历此数组

//对元素进行判断:

//如果数组当前元素在此数组中第一次出现的位置不是i

//那么我们可以判断第i项元素是重复的,否则直接存入结果数组

if(thisindexOf(this[i]) == i){

arrpush(this[i]);

}

}

return arr;

}

方法4:

[js] view plain copy

Arrayprototypemethod4 = function(){

//将数组进行排序

thissort();

//定义结果数组

var arr[this[0]];

for(var i = 1; i < thislength; i++){ //从数组第二项开始循环遍历数组

//判断相邻两个元素是否相等,如果相等说明数据重复,否则将元素写入结果数组

if(this[i] !== arr[arrlength - 1]){

arrpush(this[i]);

}

}

return arr;

}

你是想获取a标签?documentgetElementById("href4");就可以,如果获取不到,有可能是你js有问题,把js其他贴出来看一看,或者试一下下面的代码:<a href="#" id="testa">test</a>

<script type="text/javascript">

windowonload=function(){

alert(documentgetElementById("testa"));

}

</script>

改成w=woffsetWidth;

js获取Html元素的实际宽度高度

第一种情况就是宽高都写在样式表里,就比如#div1{width:120px;}。这中情况通过#div1stylewidth拿不到宽度,而通过#div1offsetWidth才可以获取到宽度。

第二种情况就是宽和高是写在行内中,比如style="width:120px;",这中情况通过上述2个方法都能拿到宽度。

小结,因为idoffsetWidth和idoffsetHeight无视样式写在样式表还是行内,所以我们获取元素宽和高的时候最好用这2个属性。注意如果不是写在行内style中的属性都不能通过idstyleatrr来获取。

现在的前端制作很少直接把样式写style里了,都是写在样式表里。如果你要获取的样式没有相对应的(就像#div1stylewidth对 应#div1offsetWidth),就只能分别针对不用浏览器来获取样式表的属性了,可以试着搜索“JS 获取样式属性”之类的。

一、获取img标签的src属性值

var imgStr = "<p><img src='>

1概念(什么叫数组):

数组是一个可以存储一组或一系列相关数据的容器。

2数组元素(数组的内容)

是指存储在数组中并赋予唯一索引号(下标)的数据段。

数组元素的数据类型可以不相同。

通过下标或者索引号能获取到数组相对应得内容。

3作用:

为了解决大量相关数据的存储和使用的问题。

4:创建数组的方法:

格1:通过关键字new 创建数组

var arr=new Array(0,1,2,3)

格2:通过字面量创建数组(通过中括号创建数组)

var arr=[0,1,2,3];

不同点:

(1)创建方式和形式不同

(2)数组中如果是一个数字的话,就是一个值

eg:var arr=[4];这个数组中只有一个数字的话,就是一个数

var arr=new Arrary(4);这个数组中只有一个数字的话,表示分配的空间

5:获取数组的长度属性 length

6:instanceof 用于判断一个变量是否是某个对象的实例

var a=["静夜思","野草","忆江南","浣溪沙"];

var a=45;

alert(a instanceof Array);

7: new Array()对象方法

slice() 获取数组中的某段数组元素

(取值是以下标开始,0代表第一个值,从前往后算,-1代表最后一个值,从后往前算)

unshift() 在数组开头添加元素

push() 在数组末尾添加元素

shift() 删除数组中的第一个元素

pop() 删除数组中的最后一个元素

toString() 将数组转换为字符串

join() 将数组元素连接成字符串

concat() 多个数组连接成字符串

sort() 数组元素正排序

reverse() 数组元素反向排序

splice() 删除数组元素/替换数组元素

indexOf() 指定数组中元素首次出现的下标,找不到元素返回-1

8:多维数组输出

9:数组去重

10:数组排序

11:数组去重+排序

用js获取页面元素:

1、getElementById()

返回一个值 或者报错null

 2、getElementsByName()

返回htmlcollection

 3、getElementsByTagName()

返回htmlcollection

 4、getElementsByClassName()

返回htmlcollection

var  vlaue =documentgetElementByClassName("classname");

for(var i=0; i<valuelength; i++){

consolelog (value[i]value );  //对象属性

}

1、这个函数来自Rico,Longbill及Dnewcn修改。

2、说明: 传入参数一个,为元素的id值或元素本身,返回为元素的真实背景色值(字符串)。背景值均为16进制的值(原代码是是IE里面返回的是16进制的值,而Mozilla则是rgb值,Dnewcn将其修改为均返回16进制的值)。

3、代码如下:

<html>  

<head>  

<title>得到元素真实的背景颜色</title>  

<style>  

classname  {background-color:#ff99dd;}  

#div3  {background-color:#d8bfd8;}  

div  {background-color:#87cefa;border:1px solid #333333;margin:10px;padding:4px;}  

body  {background-color:#bed742;}  

#div4  {background-color:transparent;}  

</style>  

</head>  

<body>  

<span style="text-align:center;font-size:20px;color:#ff7f50;width:100%;">得到元素真实的背景颜色 <font style="font-size:12px;">By <a href=

<div id='div1'>div1 直接通过div标签定义背景色(#87cefa)</div>  

<div id='div2' class=classname>div2 通过class name定义背景色(#ff99dd)</div>  

<div id='div3'>div3 通过id定义背景色(#d8bfd8)</div>  

<div id='div4'>div4 这是一个透明的div,背景色应为上一个元素的颜色(#bed742)</div>  

<button onclick="go()">getBg()</button>  

<script>  

function getBg(element)  

{//author: Longbill (

)  

//dnewcn修补  

  var rgbToHex=function(rgbarray,array){  

      if (rgbarraylength < 3) return false;  

      if (rgbarraylength == 4 && rgbarray[3] == 0 && !array) return 'transparent';  

      var hex = [];  

      for (var i = 0; i < 3; i++){  

        var bit = (rgbarray[i] - 0)toString(16);  

        hexpush((bitlength == 1)  '0' + bit : bit);  

      }  

      return array  hex : '#' + hexjoin('');  

    }  

//---------------  

  if (typeof element == "string") element = documentgetElementById(element);  

  if (!element) return;  

  cssProperty = "backgroundColor";  

  mozillaEquivalentCSS = "background-color";  

  if (elementcurrentStyle)  

    var actualColor = elementcurrentStyle[cssProperty];  

  else  

  {  

    var cs = documentdefaultViewgetComputedStyle(element, null);  

    var actualColor = csgetPropertyValue(mozillaEquivalentCSS)match(/\d{1,3}/g);  

//-----  

    actualColor = (actualColor)  rgbToHex(actualColor) : "transparent";  

  }  

  if (actualColor == "transparent" && elementparentNode)  

    return argumentscallee(elementparentNode);  

  if (actualColor == null)  

    return "#ffffff";  

  else  

    return actualColor;  

}  

function go()  

{  

  for(var i=1;i<=4;i++) eval("alert('div"+i+":'+getBg('div"+i+"'));");  

}  

</script>  

</body>  

</html>

方法有两种:

1、通过jquery的方式,使用id选择器方式获取节点,然后获取值。

2、通过原生的dom方式,获取id的值。

每一个HTML元素都使用id来进行一个标注,随后可以通过documentgetElementById(“ID名称”)取得指定的ID元素对象,取得元素对象之后就可以对其进行 *** 作。

但是documentgetElementById()只能取得一个元素信息。

documentgetElementById(“id”) 获取到的是整个对象。

documentgetELementById(“id”)innerHTML;才可以获取到其中的内容。

documentgetElementById('con')获取的只是P标签,返回的[objectHTMLParagraphElement]。

documentgetElementById('con')innerHTML获取的才是P标签里的内容,返回的是JavaScript。

扩展资料:

JavaScript脚本语言具有以下特点:

(1)脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。

(2)基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。

(3)简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。

(4)动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。在访问一个网页时,鼠标在网页中进行鼠标点击或上下移、窗口移动等 *** 作JavaScript都可直接对这些事件给出相应的响应。

(5)跨平台性。JavaScript脚本语言不依赖于 *** 作系统,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支持JavaScript脚本语言,目前JavaScript已被大多数的浏览器所支持。

不同于服务器端脚本语言,例如PHP与ASP,JavaScript主要被作为客户端脚本语言在用户的浏览器上运行,不需要服务器的支持。所以在早期程序员比较青睐于JavaScript以减少对服务器的负担,而与此同时也带来另一个问题:安全性。

而随着服务器的强壮,虽然程序员更喜欢运行于服务端的脚本以保证安全,但JavaScript仍然以其跨平台、容易上手等优势大行其道。

同时,有些特殊功能(如AJAX)必须依赖Javascript在客户端进行支持。随着引擎如V8和框架如Nodejs的发展,及其事件驱动及异步IO等特性,JavaScript逐渐被用来编写服务器端程序。

参考资料来源:百度百科-javascript

以上就是关于Js中去除数组中重复元素的几种方法全部的内容,包括:Js中去除数组中重复元素的几种方法、js获取元素、js中关于获取元素属性的方法(object.style.width)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9479395.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存