js-Array对象(数组)、arguments(伪数组)、高级迭代、清空数组

数组


赋值(初始化)

 ☞Array对象赋值方式(常用)

var mycars=new Array("Saab","Volvo","BMW");
console.log(mycars);

var mycars=new Array();
mycars[0]="Saab";
mycars[1]="Volvo";
mycars[2]="BMW";
console.log(mycars);

//也可以使用一个整数自变量来控制数组的容量:
    var mycars=new Array(3);
    mycars[0]="Saab";
    mycars[1]="Volvo";
    mycars[2]="BMW";
    console.log(mycars);

☞数组直接赋值(最常用)

var mycars = ["Saab","Volvo","BMW"];
console.log(mycars);

  ☞数组中通过下标的方式进行赋值。下标从0开始。

获取数组中的某个元素

    数组名[索引值];

修改数组

    数组名[索引值] = "赋值";

删除数组

slice() //从当前数组中截取一个新的数组,不影响原来的数组,参数start从0开始,end从1开始

新数组 = 数组1.slice(索引1,索引2);

splice()//删除或替换当前数组的某些项目,参数start,deleteCount,options(要替换的项目) 返回替换的元素

新数组 = 数组1.splice(起始索引,结束索引,替换内容);


查-->遍历


数组遍历(数据的元素个数  length属性)

数组名.length获取数组长度(元素个数)

For/In 循环

JavaScript for/in 语句循环遍历对象的属性

for( 索引名    in    数组名){

    循环语句

}

var mycars = ["Saab","Volvo","BMW"];
for(index in mycars){
    console.log(index);
    console.log(mycars[index]);
}


数组方法

concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

数组转字符串:

join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

var a, b;
a = new Array(0,1,2,3,4);
b = a.join("-");      //"0-1-2-3-4"

toString() 方法可把数组转换为字符串,并返回结果。


字符串转数组split()

实现方法为将字符串按某个字符切割成若干个字符串,并以数组形式返回,示例代码如下:

var s = "abc,abcd,aaa";
ss = s.split(",");// 在每个逗号(,)处进行分解  ["abc", "abcd", "aaa"]
var s1 = "helloworld";
ss1 = s1.split('');  //m默认的逗号分隔  ["h", "e", "l", "l", "o", "w", "o", "r", "l", "d"]

push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

reverse() 方法用于颠倒数组中元素的顺序。

sort() 方法用于对数组的元素进行排序。

slice() 方法可从已有的数组中返回选定的元素。

splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。注释:该方法会改变原始数组。

补充:

判断数组

Instanceof:  是一个关键字。     判断A是否是B类型。

布尔类型值 = A Instanceof B ;

Array.isArray() //HTML5中新增    判断是不是数组

布尔类型值 = Array.isArray(变量) ;

pop()   //删除数组中的最后一项,返回最后一项

被删除的元素 =  数组1.pop();

unshift()  //在数组最前面插入项,返回数组的长度

数组1改后的长度  =  数组1.unshift(元素1);

shift()        //删除数组中的第一个元素,返回最后一项

被删除的元素 =  数组1.shift();

sort();   //给数组排序,返回排序后的数组。如何排序看参数。

从小到大排序后的数组 =  数组1.sort(function(a,b){

                                  return a-b;

});

无参:按照数组元素的首字符对应的Unicode编码值从小到大排列数组元素。

带参:必须为函数(回调函数--callback)。函数中带有两个参数,代表数组中的  前后元素。如果计算后(a-b),返回值为负数,a排b前面。等于0不动。返回值为正数,a排b后面。


indexOf()、lastIndexOf()   //如果没找到返回-1(给元素查索引)

索引值 = 数组.indexOf/lastIndexOf(数组中的元素);

 

高级

迭代方法 不会修改原数组

every()、filter()、forEach()、map()、some()

数组/boolean/无 = 数组.every/filter/forEach/map/some(

                           function(element,index,arr){

                                                程序和返回值;                             

   }

);

//对数组中每一项运行以下函数,如果都返回trueevery返回true,如果有一项返回false,则停止遍历 every返回false;不写默认返回false

var arr = array.every(function(item,index,arr){

})

//对数组中每一项运行以下函数,该函数返回结果是true的项组成的新数组

var arr = array.filter(function(item,index,arr) {

});
console.log(arr); 

//遍历数组

var arr = array.forEach(function(item,index,arr){

});

//对数组中每一项运行以下函数,返回该函数的结果组成的新数组
var arr = array.map(function(item,index,arr) {
   
return "\"" + item +"\"";
})

//对数组中每一项运行以下函数,如果该函数对某一项返回true,则some返回true
var b = 
array.some(function(item,index,arr){
    if (item == "ww") {
        return true;
    }
    return false;

});


清空数组

var array = [1,2,3,4,5,6];

array.splice(0,array.length); //删除数组中所有项目

array.length = 0; //length属性可以赋值,其它语言中length是只读

array = [];  //推荐


伪数组(储存传递给函数参数的内部数组):

arguments[]数组只在函数体内定义。在函数体内,arguments引用该函数的 Arguments对象。该对象有带编号的属性,并作为一个存放传递给函数的所有参数的数组。标识符arguments本质上是一个局部变量,在每个函数中都会被自动声明并初始化。它只在函数体中才能引用Arguments对象,在全局代码中没有定义。


 

属性arguments.callee引用当前正在运行的函数。




若有不足请多多指教!希望给您带来帮助!