创建时间:2019-09-10
最后修改时间:2019-09-29
数组的索引值从0开始,而数组的长度Array.length却是有多少位元素;
数组省略值:
a = [,] //数组a没有元素,但是长度为1(数组元素结尾可以带逗号)PS1
PS1:此处犀牛书P147稀疏数组模块的讲解有问题,在当下的浏览器和ES规范下,两个例子中的a1数组输出结果都为false,可能时错误或者是因为版本太老所导致的。
数组的增删改查:(a, b都为正数)
pop(); //删除数组最后一位元素
unshift(a); //向数组头部添加a元素
shift(); //删除数组第一位元素
delete a[i];//删除数组a的索引值第i位元素并使其成为省略值
concat(a); //将a元素添加到数组尾部并返回一个新数组,并不改变原数组
slice方法不会修改原数组
slice(a,b); //返回数组中从索引值第a位到b位的元素,并建立一个新数组;
slice(a); //返回从这个位置的元素开始一直到数组结尾的所有元素;
slice(-a, -b);//返回从倒数第a位到倒数第b位的元素的数组;
splice
方法会修改原数组
splice(a); //返回从索引值第a位到结尾的新数组,原数组会去除掉返回的元素
splice(a,b); //返回从索引值第a位开始的b个元素,原数组会去除掉返回的元素
splice(a,b,c); //返回从索引值第a位开始的b个元素,原数组会去除掉返回的元素并在索引值a处添加c元素;
map(() => {});//对每个元素进行操作,并返回一个新函数
filter(() => {});//从原数组选出符合条件的元素,并返回一个新数组
every(() => {});//判断全部元素是否符合要求,返回true/false
some(() => {});//判断有元素符合要求,返回true/false
reduce(() => {});//对所有元素从左到右进行操作,返回数值;
reduceRight(() => {});//对所有元素从右到左进行操作,返回数值;
indexOf(a); //从左到右查找值为a的元素并返回其索引值
lastIndexOf(a); //从右到左查找值为a的元素并返回其索引值
reverse(); //将数组中的元素颠倒顺序
遍历:
for
循环:
for(var i; i < array.length; i++){}
for/in
循环:
for ( a in array){}
forEach()
方法
forEach(() => {}) //forEach方法必须要循环完,无法跳出循环;try/catch抛出异常可以跳出PS2
PS2:
function foreach( a, b, c ){
try { a.foreach( b, c ) }
catch(e) {
if (e === foreach.break ) return;
else throw e;
}
}
foreach.break = new Error("StopIteration");
类型转换:
jion("a"); //将数组中的元素以a连接并返回字符串
splite(); //将字符串切割,并创建数组
toString();//将数组转化成字符串并以逗号连接
tolocaleString();//转化成字符串并使用本地化
chatAt();//将字符串以数组的方式访问单个字符,但类型还是string```
**排序:**
sort();//数组以字母表排序,大写比小写先,字母表排序是按每个数字第一位开始进行比较,不以数值进行比较
sort(( a, b ) => {
var c = a.toLowerCase();
var d = b.toLowerCase();
if ( a < b ) return -1;
if ( a > b ) return 1;
return 0
}) //不区分大小写排序
sort(( a, b ) => { return a - b }); //根据数值进行排序,小到大
sort(( a, b ) => { return b - a }); //根据数值进行排序,大到小