JavaScript 数组 - Go语言中文社区

JavaScript 数组


JavaScript 数组:

  1、它是值的有序集合

  2、是无类型的,接受任意类型,且同个数组可以拥有多种类型

  3、索引是基于 0 的 32 位数值,最大可能索引为 2^32-2

  4、是动态的,在改变数组大小时不需重新分配空间

  5、可以是稀疏的,即索引不一定要连续,元素与元素之间允许有空缺

  6、有一个 length 属性,返回数组长度

  7、是 JavaScript 对象的特殊形式

  8、继承自 Array.prototype 中的属性,定义了一套丰富的数组操作

 

创建数组:

// 可以通过数组直接量或构造函数 Array 来创建数组
let arr = [1, , 3];
console.log(arr.length);    // 输出3
arr = [, ,];
console.log(arr.length);    // 数组直接量语法允许有可选结尾逗号,所以输出2

/*
    arr = new Array();  //创建空数组,等价[]
    arr = new Array(5); // 创建长度为5的数组,此时值与索引都未定义
    // 当参数个数大于 1 时,参数指定数组的内容
    arr = new Array(3, 4, {'x': 'y'}, [5, 6], "Hello");
*/

 

数组的读写:

  1、使用 [ ] 操作符来访问数组中的一个元素,方括号里是一个返回非负整数值的任意表达式

  2、所有索引都是属性名,而只有 0~2^32-2 之间的整数属性名才是索引

  3、可以使用负数或非整数来索引数组,但数值会转换为字符串,作为属性名来使用

  4、若使用非负整数字符串,则将它转换为整数,并作为数组索引

  5、数组索引仅仅是对象属性名的一种特殊类型,即 JavaScript 数组没有 “越界” 错误的概念,当属性不存在时仅仅得到 undefined 值

let arr = [1, 2, 3, 4, 5];

console.log(arr[0]);    // 返回 arr[0]
console.log(arr[arr[0]+1]); // 返回 arr[2]
console.log(arr["2"]);  // 返回 arr[2]

arr["-1.2"] = 7;
console.log("arr['1.2']: ", arr[-1.2]); // 返回 7
console.log(arr[1.23]); //返回 undefined

 

稀疏数组:

  1、稀疏数组就是包含从 0 开始的不连续索引的数组

  2、稀疏数组的 length 属性值大于元素个数

  3、可以通过数组直接量、构造函数 Array() 和 delete 操作符来创建稀疏数组

let a1 = [];
a1[100] = 0;    // 创建一个长度为 101 的稀疏数组

let a2 = new Array(3);
a2[2] = 3;  // 创建一个长度为 3 的稀疏数组,等价 a2 = [, , 3]

let a3 = [1, 2, 3, 4];
delete a3[1];   // 使数组变成长度为 4 的稀疏数组

 注:减小数组 length 属性时会截去大于 length 部分的元素,我们可以设置 Object.defineProperty(arr, "length", {writable: false}) 使数组 length 属性变成只读,即无法修改数组大小

 

多维数组:

  1、JavaScript 不支持真正的多维数组,但可以用数组的数组来近似地表示

  2、可多次使用 [ ] 操作符来访问多维数组的元素

 

let arr = [[[1, 2] ,[3, 4]], [5, 6]];
console.log(arr[0][0][0] + arr[0][1][1] + arr[1][1]); // 返回 1+4+6

 

版权声明:本文来源博客园,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://www.cnblogs.com/lemonyam/p/10655512.html
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2019-11-17 15:47:50
  • 阅读 ( 1085 )
  • 分类:

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢