JavaScript-hash数组for in 函数

 1 什么是数组:内存中,连续存储多个数据的存储空间,再起一个名字为什么;
 2 为什么:现实存储多个相关数据,都是集中存储,共同一个名字
 3
 4 程序=数据结构+算法
 5 好的数据结构可以极大的提高程序的执行效率
 6 何时使用数组,今后只要连续存储多个相关的数据都要用数组
 7 如何使用数组:
 8
 9 创建数组:3种
10 一.创建空数组
11 1.创建空数组:var arr=[];
12 2.用new: var arr=new Array();
13
14 二.创建数组同时,初始化数组的数据:
15 1.数组直接量:var arr=[值1,2,3,4,5,6,....]
16 2.用new:var arr=new Array(值1,2,3,4,5,6,.....)
17
18 三.创建n个空房间
19
20 数组的length属性:
21 标识了数组中理论上的元素个数
22 任何情况下:length永远是最大下标+1
23 固定套路
24 缩容:arr.length--
25 1.最后一个元素:arr[arr.length-1]
26 2.倒数第n个元素:arr[arr.length-n]
27 3.追加新元素:arr[arr.length]=新值;
28 特殊情况:js中的数组:3个不限制
29 1.不限制元素的类型
30 2.不限制下标越界
31 获取元素值:
32  下标越界:不报错,返回undefined
33 3.不限制元素的个数
34 设置元素值:
35 1.最后一个元素:arr[arr.length-1]
36 2.倒数第n个元素:arr[arr.length-n]
37 3.追加新元素:arr[arr.length]=新值;
38 下标越界:
39 自动在指定值
40
41 如果找不到,返回-1
42
43
44 数组是引用类型的对象
45
46 垃圾回收
47 定期回收不再被任何变量引用的对象。释放内存。
48 1.垃圾回收器:
49 伴随主程序,并运行的一个小程序
50 定期回收内存中的不在被任何变量引用的对象
51 2.引用计数器:
52 每个对象上,标记正在引用对象的变量个数的一个属性
53 每多一个变量引用对象,计数器就+1
54 如果一个变量通过赋值为null释放对对象的引用,则计数器-1
55 直到计数器为0,表示不再有任何变量引用该对象,则该对象被回收/释放
56 建议:如果使用完较大的对象,都要主动赋值为null。
57
58 访问元素:
59 lxr["name"]
60 强调关联数组的length失效
61 遍历不能用for循坏
62    用for in循环
63 其中in,表示依次取出数组中每个下标for(var key in hash){
64     //key得到是每个元素的下标名称
65     hash[key]当前元素值
66 }
67
68 关联数组/hash数组原理:
69 hash算法:接收一个字符串,并计算出一个尽量不重复的序号
70 相同的字符串,计算出的号总是一样的
71 不同的字符串,计算出的号绝大多数不重复
72
73 存入数据:
74   hash算法接收一个字符串的下标明,计算出一个不重复的序号。将数据存储在序号对应的数组位置上
75 获取数据:
76 将下标名称交个hash算法,算出和存入时完全相同的序号,直接去序号位置查找元素
77 优点,查找极快
78 和数组中元素个数,以及元素在数组中的位置无关
<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<script>
//    var lxr=[];
//    lxr["name"]="林心如";
//    lxr["math"]=83;
//    lxr["chs"]=93;
//    lxr["eng"]=80;
//    console.log(lxr);
//    console.log(lxr["math"]);
//    //遍历
//    for(var key in lxr){
//        console.log(key+":"+lxr[key]);
//    }
///*****************************************/
    var arr=[‘a‘,‘b‘,‘c‘,‘b‘,‘a‘];
    function uniqual(arr){
        //遍历arr中每个元素,同时声明空数组uarr
    for (var i= 0,uarr=[]; i<arr.length;i++){
        //遍历uarr中每个元素
        for(var j=0;j<uarr.length;j++){
            //如果uarr中当前元素等于arr中当前元素
            if(uarr[j]==arr[i]){
                break;//就退出循环 //遍历结束
            }
        }
        //如果j等于uarr的length
        if(j==uarr.length){
            uarr[j]=arr[i];//将arr中当前元素加入uarr中
        }//遍历结束
    }
        //返回uarr
    return uarr;
    }
    var uarr=uniqual(arr);
    console.log(String(uarr)); //abc
</script>
</body>
</html>
时间: 2024-11-05 20:40:51

JavaScript-hash数组for in 函数的相关文章

JavaScript (数组的常用函数)

<script type="text/javascript"> //数组从右边增加 var a=[1,2,3,4,5,6]; a.push(6,7,8); //数组从左边增加 a.unshift(-2,-1,0); //数组从右边减少一个 a.pop(); //数组从左边减少一个 a.shift(); //将数组里的数值提取出来,成为字符串,用"-"连接 var d = a.join("-") //从数组中选取元素从1位到3位的元素

[转] 有趣的JavaScript原生数组函数

在JavaScript中,可以通过两种方式创建数组,Array构造函数和 [] 便捷方式, 其中后者为首选方法.数组对象继承自Object.prototype,对数组执行typeof操作符返回‘object’而不是‘array’.然而执 行[] instanceof Array返回true.此外,还有类数组对象使问题更复杂,如字符串对象,arguments对象.arguments对象不是Array的实例,但却 有个length属性,并且值能通过索引获取,所以能像数组一样通过循环操作. 在本文中,

有趣的JavaScript原生数组函数

在JavaScript中,创建数组可以使用Array构造函数,或者使用数组直接量[],后者是首选方法.Array对象继承自Object.prototype,对数组执行typeof操作符返回object而不是array.然而,[] instanceof Array也返回true.也就是说,类数组对象的实现更复杂,例如strings对象.arguments对象,arguments对象不是Array的实例,但有length属性,并能通过索引取值,所以能像数组一样进行循环操作. 在本文中,我将复习一些数

JavaScript的作用;JS常见的三种对话框;==和===的区别;函数内部参数数组arguments在函数内部打印实参;JS的误区:没有块级作用域

JS:客户端(浏览器)脚本语言 弱类型 基于原型 事件驱动 不需要编译(直接运行) JS的作用:表单验证,减轻服务端的压力 添加页面动画效果  动态更改页面内容  Ajax网络请求 (一)常见的对话框 alert()对话框:该方法是window对象的方法,在浏览器中弹出一个对话框(该方法没有返回值)  prompt()对话框:2个参数,一个是浏览器提示信息,第二个是默认的输入框的值,返回值就是输入框的信息  confirm()对话框:在浏览器弹出一个对话框,用户只能选择正确或者取消,返回值对应为

JavaScript中的Function(函数)对象

1.document.write(""); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document->html->(head,body) 4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document) 5.得到表单中元素的名称和值:document.getElementById("表单中元素的ID号").name(或value) 6.一个小写转大

作业:JavaScript(数组篇-poker)给我的徒弟出个题。。。记得早点写完,然后大家3人可以早点打牌了

吐槽一下:“今天实际上我左思右想,写个什么东西好呢!手上的笔转了半天....最后还是给自己留点余地!看着他们什么酒店管理系统,呼叫中心系统之类的....简直是把自己固定死了!感觉一撸到底的感觉!!!我们是程序员所以我觉得要思想灵活点HOHO...” 今天只是想写一篇关于JavaScript数组的一篇文章 以前我认为我已经完全把数组掌握了!但是去年面试的时候被问呆了!!瞬间感觉自己萌萌哒!!所以把书看完了不算会!所以这次为了让我的徒弟能够不再犯我当年的错误...哼哼!我决定让她来一次实战!!!不能

JavaScript操作数组

数组被描述为一个存储元素的线性集合,元素可以通过索引来任意存取. 几乎所有的编程语言都有类似的数据结构,但是Javascript中的数组却略有不同. Javascript中的数组是一种特殊的对象,所以在数组的操作效率上不如其他语言中的数组高. 也因为数组再JavaScript中被当做对象,所以它有很多属性和方法可以再编程时使用. 下面就简单介绍一下JavaScript中的数组的使用方法. 注:以下所有的JavaScript代码均在 jsshell 中运行,一些方法可能在其他环境中(如浏览器和su

javascript中数组的22种方法 (转载)

前面的话 数组总共有22种方法,本文将其分为对象继承方法.数组转换方法.栈和队列方法.数组排序方法.数组拼接方法.创建子数组方法.数组删改方法.数组位置方法.数组归并方法和数组迭代方法共10类来进行详细介绍 对象继承方法 数组是一种特殊的对象,继承了对象Object的toString().toLocaleString()和valueOf()方法 [toString()] toString()方法返回由数组中每个值的字符串形式拼接而成的一个以逗号分隔的字符串 [注意]该方法的返回值与不使用任何参数

javascript常用数组算法总结

1.数组去重 方法1: JavaScript //利用数组的indexOf方法 function unique (arr) { var result = []; for (var i = 0; i < arr.length; i++) { if (result.indexOf(arr[i]) == -1) result.push(arr[i]); } return result; } 1 2 3 4 5 6 7 8 9 //利用数组的indexOf方法 function unique (arr)

私人定制javascript中数组小知识点(Only For Me)

先上笑话,1.刚看到一个游泳的,想起公司组织去三亚旅游,老板跳海里,各种挣扎,捞上来老板第一句话:我记得我会游泳的啊. 2.媳妇说:老公对不起,我把你新买的自行车撞散架了! 老公:没事宝贝,你若安好,便是晴天! 媳妇说:老公你太有诗意了. 老公:滚犊子,安不好我整死你! 数组的概念 javascript数组是值得有序集合,不过它实属一个javascript对象的特殊形式,这是一个很重点的定性. 创建数组 1.var a=new Array();//等同于[] 2.var a=new Array(