JS 索引数组、关联数组和静态数组、动态数组

 1 JS 索引数组、关联数组和静态数组、动态数组
 2
 3 数组分类:
 4
 5 1、从数组的下标分为索引数组、关联数组
 6
 7 var ary1 = [1,3,5,8];
 8 //按索引去取数组元素,从0开始(当然某些语言实现从1开始)
 9 //索引实际上就是序数,一个整型数字
10 alert(ary1[0]);
11 alert(ary1[1]);
12 alert(ary1[2]);
13 alert(ary1[3]);
14
15
16 var ary2 = {};
17 //存取时,以非序数(数字),这里是字符串
18 ary2["one"] = 1;
19 ary2["two"] = 2;
20 ary2["thr"]  = 3;
21 ary2["fou"] = 4;
22
23 2、从对数据的存储分为静态数组、动态数组
24
25  Int[] ary1 = {1,3,6,9};//定义后数组的长度固定了不能改变,按索引取数组元素    List ary2 = new ArrayList(); ary2.add(1);//可以动态的添加元素,数组的长度也随着变化 ary2.add(3); ary2.add(6);
26
27
28
29 var ary = [];//定义一个数组,未指定长度
30 ary[0] = 1;//可以动态的添加元素
31 ary.push(3);
32 ary.push(5);
33
34 alert(ary.join(","));//输出1,3,5
35
36 js的数组同时属于索引数组和动态数组,因为本质上它就是一个js对象,体现着js动态语言特性。但js的索引数组并非“连续分配”内存的,因此索引方式并不会带来很高的效率。而java中的数组则是连续分配内存的。
37
38 Array 对象sort 方法
39 描述:
40 返回一个元素已经进行了排序的 Array 对象.
41
42 语法:
43 sort() 默认对 字符传进行排序.
44 arrayobj.sort(sortfunction)
45 如要求结果是10、16、120这样的数字大小排序,应该使用下面的程序:
46
47
48 function(x,y)是具体实现排序功能的函数, 上面的方法是实现升序,如果想实现降序,可以改下返回结果:return parseInt(y)-parseInt(x);
49 当然如果想实现字符串的排序,则可以直接使用a.sort(param);即sort(param) 默认对字符串进行排序,参数为一函数,如果省略该参数,则那么元素将按照 ASCII 字符顺序进行升序排列.当然也可以实现对Long型数据排序,将parseInt改为parseLong即可.
时间: 2024-10-05 08:06:17

JS 索引数组、关联数组和静态数组、动态数组的相关文章

C++中关于[]静态数组和new分配的动态数组的区别分析

这篇文章主要介绍了C++中关于[]静态数组和new分配的动态数组的区别分析,很重要的概念,需要的朋友可以参考下 本文以实例分析了C++语言中关于[]静态数组和new分配的动态数组的区别,可以帮助大家加深对C++语言数组的理解.具体区别如下: 一.对静态数组名进行sizeof运算时,结果是整个数组占用空间的大小:因此可以用sizeof(数组名)/sizeof(*数组名)来获取数组的长度.int a[5]; 则sizeof(a)=20,sizeof(*a)=4.因为整个数组共占20字节,首个元素(i

静态数组和动态数组

概念 数组在程序设计中应用十分广泛,可以用不同类型的数组来存储大量相同类型的数据.创建数组的方式一般有三种: 全局/静态范围的数组.局部变量数组.申请堆空间创建的数组.其中,全局/静态范围的数组以及局部变量数组都属于静态数组,从堆中申请空间建立的数组为动态数组. 静态数组和动态数组的区别 1.静态数组的大小是在编译期间就确定,并且分配的,其内存在使用结束后由计算机自动释放,效率高:动态数组是在程序运行时,由程序员根据实际需要从堆内存中动态申请的,使用结束后由程序员进行释放,效率低. 2.对静态数

Powershell 数组的使用(一)【动态数组】

在上文中我们介绍了如何使用[静态数组],内容涉及到数组的创建.元素的添加删除等操作,很显然,通过该种方式去操作一个数组是非常麻烦的,静态数组的目的在于让大家了解数组的基本概念和操作,在实际使用数组的脚本中,我们会创建动态数组来更好的提高脚本运算速度和易编写性. 动态数组.使用.Net的类来进行定义,它除了像静态数组一样可以进行比较,索引查找外还可以很方便的进行元素变更,在循环添加元素时它也是自由的去添加单个元素而不是重新定义整个数组,因而极大的提高了脚本的运算速度. 一. 动态数组的定义,动态数

Delphi-基础(常量、集合、数组[动态数组、多维数组])

一.常量 1.常量定义:一开始定义好的值,以后在程序的运行过程中不允许改变 1 const 2 Pi : Double = 3.141592; //定义为常量 3 {常量的定义方式,可以不进行类型的声明,编译器会根据具体值决定常量的的类型} 4 Pi2 = 3.1415; 2.常量使用 枚举:常量集 type 枚举名=(标识符1,标识符2,标识符3,......) 1 type 2 {正常情况下,枚举类型的索引是从0开始} 3 EColors = (RED,GREEN,BLUE); 4 EWee

动态数组

动态数组也叫数组的动态联编,有动态联编自然也有静态联编,静态联编就是数组的长度在编译时设置,而动态联编是在运行时才为数组分配空间,其长度在运行时设置,使用完这种动态数组后,应该释放内存. 静态联编:int arr[10];       //数组长度为一常量 动态数组在ISO C99后就有了新的规定(如下图文件): 这是部分说明,完整的说明在 ISO/IEC9899 标准的 6.7.5.2 Array declarators里可以看到,这个里面加入了可变长数组的相关规定. #include <io

线性表之顺序存储结构(C语言动态数组实现)

线性表的定义:N个数据元素的有限序列 线性表从存储结构上分为:顺序存储结构(数组)和 链式存储结构(链表) 顺序存储结构:是用一段连续的内存空间存储表中的数据 L=(a1,a2,a3....an) 链式存储结构:是用一段一段连续的内存空间存储表中每一行的数据,段与段之间通过一个引用(指针)相互连接来,形成一个链式的存储结构 看到顺序存储结构的图示,我们可能会马上联想到C语言的数组.是的,数组就是一种典型的顺序存储数据结构.下面我通过一个实例,来实现对顺序存储结构中的数据增.删.改.查的操作. 首

C基础 万能动态数组

引言 - 动态数组切入 开发中动态类型无外乎list 或者 vector, 这里就是在C中实现vector结构容器部分. 对于C中使用的数据结构, 可以参照下面感觉很不错框架源码学习 , 感觉是<<C接口与实现>>的标准Demo twemproxy  https://github.com/twitter/twemproxy/tree/master/src 写的很清楚易懂, 给人一种铺面而来的美感. 关于动态数组设计的总思路, 主要体现在下面的数组结构 struct array {}

动态数组vector

动态数组 动态数组可以实现长度的自由变化,但是通过vector的默认值可以基本判断所谓动态数组实际上还是一个普通数组,传递一个参数确定数组长度,如果没有传递参数,程序中其实默认进行设定.如果插入数据之后超过了已有长度,则在内部进行了一个创建第三方的过程,将现在的数组保存起来,然后再次创建一个新的长度的数组,然后根据插入值进行重新整合. 笔者并未看过源码,只是按照功能试着进行实现. 1.array.h 1 #pragma once 2 3 #include <iostream> 4 using

使用new来创建动态数组

原文来自:http://book.51cto.com/art/201211/367161.htm 使用new来创建动态数组(1) 如果程序只需要一个值,则可能会声明一个简单变量,因为对于管理一个小型数据对象来说,这样做比使用new和指针更简单,尽管给人留下的印象不那么深刻.通常,对于大型数据(如数组.字符串和结构),应使用new,这正是new的用武之地.例如,假设要编写一个程序,它是否需要数组取决于运行时用户提供的信息.如果通过声明来创建数组,则在程序被编译时将为它分配内存空间.不管程序最终是否

c语言结构体中动态数组的使用

[背景] c语言结构体中动态数组使得用户能够根据需要来申请空间,相比静态数组,更能有效利用存储空间. [正文] 1. 动态数组在结构体中间 #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int a; char buf[0]; // 或者char buf[]; int b; }Node; int main() { printf("%d\n", si