标签:empty 正数 整数 获取对象 字符串 区别 数据 浅析 个数
数组就是一组数据.
在JavaScript中没有数组这种数据类型.数组时对象创建的.
- 键(下标): 用于区分数组中不同数值的标志就是键,初始键为0.
- 以数字作为下标的键,这种数组称之为索引数组.
- 以字符串作为下标的键,这种数组称之为关联数组
- 注意: 在JavaScript中只有索引数组,y没有关联数组,必须是从0开始连续的索引数组!
- 值:每个键对应的数据就是值.
- 键值对:键+值 就是键值对
数组变量[数组变量.length] = 值;
a[a.length] = 1;//添加
数组变量[指定下标] = 新值;
a[0] = 1;修改
数组变量[超过当前数组长度的数值] = 值;
a = [1,2,3];
a[5] = 5;
输出:[1, 2, 3, empty × 2, 5]
delete 数组变量[指定下标];
deldet a[0];
注意: 这种方式仅仅可以删除数组的元素值,不可以删除键,删除操作之后,数组的长度保持不变。如果想彻底删除元素需要使用splice这个方法。
第一种
var x = [1,2,3];
for (var i=0;i<x.length;i++){
console.log(x[i]);
}
第二种
var x = [1,2,3];
for (var i of x){
console.log(i);
}
输出均为以下
1
2
3
通俗解释如下
一维数组:
如果一个元素中的所有值都不是数组,那么这个数组就是一个一维数组.
二维数组:
如果一个一维数组的元素中包含一维数组,那么这个数组就是二维数组
三维数组:
如果一个一维数组的元素中包含二维数组,那么这个数组就是三维数组
多维数组:
如果一个数组的维度超过三维,统称为多维数组
多维数组的访问操作:
数组变量[键][键]...
格式:
新变量 = 数组变量.concat(值,值...)
var b = a.concat(a, 1, "x");
给数组就在后面添加所有数组元素,给普通数值就添加普通数值
,
格式:
新变量 = 数组变量.join(制定字符串)
var b = a.join("");//""
空字符就等于没有连接字符串
格式:
结果变量 = 数组变量.pop();
var b = a.pop();
注意:该方法直接操作原有数组.返回值为弹出的元素
格式:
结果变量 = 数组变量.push(值,值..)
var b = a.push("1", "2");
注意:该方法直接操作原有数组.返回值为添加后的数组长度
格式:
结果变量 = 数组变量.shift();
var b = a.shift();
格式:
结果变量 = 数组变量.unshift(值,值...)
var b = a.unshift("1", "2");
?
格式:
结果变量 = 数组变量.reverse();
var b = a.reverse();
格式:
结果变量 = 数组变量.sort();
var b = a.sort();
格式:
结果变量 = 数组变量.sort(回调函数);
var b = a.sort(c);
格式:
结果变量 = 数组变量.slice(开始下标,结束下标);
var b = a.slice(1,3);
其中参数为位置参数,正数表示从前向后数,负数从后向前数.
在指定位置添加元素
结果变量 = 数组变量.splice(制定位置,0,新增元素..)
var b = a.splice(1,0,"ABC");
在制定位置删除元素
结果变量 = 数组变量.splice(制定位置,删除个数);
var b = a.splice(1,2);
在制定位置替换元素
结果变量 = 数组变量 .splice(制定位置,删除个数,新增元素)
var b = a.splice(1,2,"ABC","DEF");
在JavaScript中有一种性质与数组相似特殊的对象,我们称之为类数组对象,最常见的便是 argumengs对象。
- 可以通过索引访问元素,并且拥有 length 属性;
- 没有数组的其他方法,例如 push , forEach , indexOf 等。
类数组
var arrLike = {
0: 'Java',
1: 'Python',
2: 'PHP',
length: 3
}
同款数组
var arr = ["Java", "Python", "PHP"];
访问
console.log(arr[0]); // Java
console.log(arrLike[0]); // Java
赋值
arr[0] = ‘JavaScript‘;
arrLike[0] = ‘JavaScript‘;
获取对象的长度
console.log(arr.length); // 3
console.log(arrLike.length); // 3
类数组对象使用数组方法时会报错
arrLike.push("C++"); // Uncaught TypeError: arrLike.push is not a function
有时候我们需要让类数组有数组的特性,这时候就需要转换,可以是直接转换也可以间接转换。
通过 Function.call 或Function.apply 方法
Array.prototype.push.call(arrLike, 'C++');
console.log(arrLike);
// { '0': 'Java', '1': 'Python', '2': 'PHP', '3': 'C++', length: 4 }
Array.prototype.push.apply(arrLike, ['C++']);
console.log(arrLike);
// { '0': 'Java', '1': 'Python', '2': 'PHP', '3': 'C++', length: 4 }
Array.prototype.slice 将类数组转换为数组
Array.prototype.slice.call(arrLike,0);
Array.prototype.slice.apply(arrLike,0);
Array.prototype.splice 将数组转换为类数组
Array.prototype.splice.call(arrLike,0);
Array.prototype.splice.apply(arrLike,0);
标签:empty 正数 整数 获取对象 字符串 区别 数据 浅析 个数
原文地址:https://www.cnblogs.com/aduner/p/12229685.html