数组(Array)

创建时间: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 }); //根据数值进行排序,大到小

你可能感兴趣的:(数组(Array))