前端Array函数用法(js的内置对象Array详解来了)

 分类:js知识时间:2022-11-09 07:30:01点击:

前端Array函数用法

一、js的内置对象Array数组的创建方式:

    1.字面量:

    放置一个数值时,就是一个数据。

var arr = [6];

    2.构造函数:

    放置一个数据时,表示长度或数据的个数,空表示undefined。

var arr = newArray(6);

    建议:Array作为构造函数,行为很不一致。因此,不建议使用它生成新数组,直接使用数组字面量是更好的做法。

二、Array数组的操作:

    1.push();

    用于在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度。

    注意,该方法会改变原数组

var arr = [1,2,3];    console.log(arr.push("hello"));  //4

console.log(arr);     //[1,2,3,"hello"]---原数组改变

console.log(arr.push("a","b"));  //6

console.log(arr);     //[1,2,3,"hello","a","b"]---原数组改变

    2.pop();

    用于删除数组的最后一个元素,并返回该元素。对空数组使用pop方法,不会报错,而是返回undefined。

    注意,该方法会改变原数组

vararr = [1,2,3]; 
console.log(arr.pop()); //3
console.log(arr); //[1,2] →原数组改变

    3.concat();

    合并数组。

    注意,该方法不会改变原数组

var arr1 = [1,2,3]    
var arr2 = arr1.concat();    
console.log(arr1);           //[1,2,3]→→原数组
console.log(arr1 === arr2);  //false
console.log(arr2);           //[1,2,3]→→原数组的副本
console.log(arr1.concat("hello","world"));    //[1,2,3,"hello","world"]
console.log(arr1.concat(["a","b"],[[3,4],{"name":"admin"}]));   
//[1,2,3,"a","b",[3,4],{"name":"admin"}]
console.log(arr1);  //[1,2,3]→→原数组未改变

    4.shift();

    用于删除数组的第一个元素,并返回该元素。

    注意,该方法会改变原数组

var arr = [1,2,3] 
console.log(arr.shift()); //1
console.log(arr); //[2,3]→→原数组改变

    5.unshift();

    用于在数组的第一个位置添加元素,并返回添加新元素后的数组长度。

    注意,该方法会改变原数组

vararr = [1,2,3]; 
console.log(arr.unshift("hello")); //4
console.log(arr); //["hello",1,2,3]→→原数组改变
console.log(arr.unshift("a","b")); //6
console.log(arr); //["a","b","hello",1,2,3]→→原数组改变

    6.slice();

    用于复制目标数组的一部分,返回一个新数组。

    注意,该方法不会改变原数组。

    如果slice方法的参数是负数,则表示倒数计算的位置;如果第一个参数大于等于数组长度,或者第二个参数小于第一个参数,则返回空数组。

var arr = ["a","b","c","d","e"]; 
console.log(arr.slice(1,3)); //["b","c"] 
console.log(arr.slice(1)); //["b","c","d","e"] 
console.log(arr.slice(-4,-1)); //["b","c","d"] 
console.log(arr.slice(-2)); //["d","e"] 
console.log(arr.slice(1,-2)); //["b","c"] 
console.log(arr); //["Tom","Jack","Lucy","Lily","May"]→→原数组未改变

    7.splice();

    用于删除原数组的一部分成员,并可以在删除的位置添加新的数组成员,返回值是被删除的元素。

    注意,该方法会改变原数组

    起始位置如果是负数,则表示从倒数位置开始删除。

    ①不传参时:无操作;

var arr = ["a","b","c","d","e"]; 
console.log(arr.splice()); //[] 
console.log(arr); //["a","b","c","d","e"]→→无操作

    ②只传入start:表示从索引为start的数据开始删除,直到数组结束;

var arr = ["a","b","c","d","e"]; 
console.log(arr.splice(2)); //["c", "d", "e"] 
console.log(arr); //["a", "b"]→→原数组改变

    ③传入start和num:表示从索引为start的数据开始删除,删除num个;

var arr = ["a","b","c","d","e"]; 
console.log(arr.splice(2,2)); //["c", "d"] 
console.log(arr); //["a", "b", "e"]→→原数组改变

    ④传入更多:表示从索引为start的数据开始删除,删除num个,并将第三个参数及后面所有参数,插入到start的位置;

var arr = ["a","b","c","d","e"]; 
console.log(arr.splice(2,2,"f","g")); //["c", "d"] 
console.log(arr); //["a", "c", "f", "g", "e"]---原数组改变

    8.reverse();

    用于颠倒排列数组元素,返回改变后的数组(还是原数组)。

    注意,该方法将改变原数组

vararr = [a,b,c]; 
console.log(arr.reverse()); //[c,b,a]
console.log(arr); //[c,b,a]→→原数组改变

    9.sort();

    对数组成员进行排序,默认是按照字典顺序排序。排序后,原数组将被改变;

    注意:sort方法不是按照大小排序,而是按照字典顺序。也就是说,数值会被先转成字符串,再按照字典顺序进行比较,例如:121排在13的前面;如果想让sort方法按照自定义方式排序,可以传入一个函数作为参数。

[10111,1101,111].sort(function(a,b){

  return a - b;     //  升序

  // return b - a;  // 降序

})   // [111,1101,10111]

    10.join();

    以指定参数作为分隔符,将所有数组成员连接为一个字符串返回。如果不提供参数,默认用逗号分隔;

    注意, 该方法不会改变原数组

    如果数组成员是undefined或null或空位,会被转成空字符串。

var arr = [a,b,c];
console.log(arr.join());         // a,b,c
console.log(arr.join("*"));      // a*b*c
console.log(arr);                //[1,2,3]→→原数组未改变

    11.for- in();

    遍历语句,类似于循环,但for-in可以遍历没有索引的集合,也被成为枚举。

for(vari inarr) i是下标; 
for(vari inobj) i是属性名.

三、补充:

1、push和pop结合使用,就构成了“后进先出”的栈结构(stack);

2、push和shift结合使用,就构成了“先进先出”的队列结构(queue)。

除注明外的文章,均为来源:老汤博客,转载请保留本文地址!
原文地址: