JS内置对象1:数组

JS中的内置对象

  1. Array
  2. String
  3. Math
  4. Date

Array


每一项都可以保存任意类型的数据。

数组的大小或者说长度,是可以动态调整的。

创建

2种方法:

1. 使用Array构造函数


语法: new Array()

()内可以填写预设的**参数个数**,或者预设的**参数项名称**。
<br>
**实例:**

     var colors = new Array(10) ;

     var str = new Array(参数项1, 参数项2, 参数项3);


2. 数组字面量

语法: var 变量名 = ["参数项1", "参数项2", "参数项3"]


数组读写


读取和设置时,使用方括号[ ]并加上相应索引。

注意:索引从0开始。


实例:

var colors = ["red", "blue", "green"];

//这是读取
console.log(colors[1]);

//这是写入
colors[3] = "orange";


数组长度


语法:array.length

返回值: number

实例1:

var colors = ["red", "blue", "green"];

console.log(colors.length); //3


也可以从数组末尾移除项

实例2:

var colors = ["red", "blue", "green"];

colors.length = 2;

console.log(colors[2]);  //undefined


如果把一个值放在超出数组大小的位置上时,会重新计算长度值,长度值等于最后一项索引加1

实例3:

var colors = ["red", "blue", "green"];

colors[10] = "white";
console.log(colors.length);  // 11


数组的栈方法

  1. push( )
  2. unshift( )
  3. pop( )
  4. shift( )


push( )

把参数按顺序添加到数组末尾


语法:

arrayObject.push(新参数1,新参数2,...新参数n)


返回值: 新数组的长度(number


实例:

var colors = ["red", "blue", "green"];

//添加
colors.push("yellow");
console.log(colors);

//返回值
var len = colors.push("yellow");
console.log(len);


unshift( )

把参数按顺序添加到数组开头


语法:

arrayObject.unshift(新参数1,新参数2,...新参数n)


返回值: 新数组的长度(number


实例:

var colors = ["red", "blue", "green"];

//添加
colors.unshift("yellow");
console.log(colors);


shift( )

删除数组第一个元素


语法:

arrayObject.shift()


返回值: 被删除的那个元素


实例:

var nums = [1,2,3];

var n = nums.shift();
console.log(nums);  // [2,3]


pop( )

删除数组最后一个元素


语法:

arrayObject.pop()


返回值: 被删除的那个元素


实例:

var nums = [1,2,3];

var n = nums.pop();
console.log(nums);  // [1,2]


数组转换字符串

join( )

把数组中的所有元素放进字符串


语法:

arrayObject.join("字符串分隔符")

如果分隔符不填写,默认是逗号“,”


返回值: 字符串(string)


实例:

var nums = [1,2,3];

var str = nums.join("-");
console.log(str);  // 1-2-3


数组重排序

  1. reverse( )
  2. sort( )


reverse( )

颠倒数组中元素的顺序



语法:

arrayObject.reverse()


返回值: 数组(array)


实例:

var nums = [1,2,3];

nums.reverse();
console.log(nums);  // [3,2,1]


sort( )

对数组元素进行排序


语法:

arrayObject.sort()
  1. sort如果没有参数,默认比较方式是比较首字母、第一个数字大小。

  2. sort( )可以传一个比较函数作为参数。


返回值: 数组(array)


实例:

var arr = [1,2,-3,11,88,9];

//不传参数
arr.sort();
console.log(arr);  // [-3, 1, 11, 2, 88, 9]

//比较函数——降序
arr.sort(function(a,b){return a < b});
console.log(arr);  // [88, 11, 9, 2, 1, -3]

//比较函数——升序
arr.sort(function(a,b){return a > b});
console.log(arr);  // [-3, 1, 2, 9, 11, 88]


多数组合并

concat( )


语法:

arrayObject.concat(数组1,数组2,...数组n)


返回值: 数组(array)


实例:

var arr1 = ["1","2","3"];
var arr2 = ["a","b","c"];

arr3 = arr1.concat(arr2);
console.log(arr3);  // ["1", "2", "3", "a", "b", "c"]


选取特定数组元素

slice( )


语法:

arrayObject.slice(开始下标,结束下标)

参数:

开始下标(必需) 从何处开始选取;如果是负数,用它加上数组长度,便是开始下标。

结束下标(可选) 从何处结束选取


实例:

var arr = ["1","2","3","4","5"];

var newArr = arr.slice(1,3);
console.log(newArr); // ["2","3"]

//负数
var newArr = arr.slice(-3,3);  //相当于(2,3console.log(newArr);  // ["3"]


扩展 —— b数组拷贝a数组


1. 遍历,push

    b = new Arr();
    for (var i = 0; i<a.length; i++){
        b.push(a[i]);
    }


2. concat()

b = [].concat(a);


3. slice( )

b = a.slice(0);


splice( )


1. 删除数组

索引处开始删除零个或多个元素。


语法:

arrayObject.splice(索引,个数)


如果个数为0,不会删除元素;

如果不设置,则删除所有元素。

返回值: 被删除元素 组成的的数组


实例:

var arr = ["a","b","c"];

//返回值
var newArr = arr.splice(0,2);

console.log(newArr);  // ["a","b"]

consloe.log(arr);   // ["c"]


2. 插入数组

从指定位置插入值

如填写索引为3,就在3那个位置上插入新增项。

语法:

arrayObject.splice(开始下标,删除个数,插入项1,...插入项n)

如果不删除,删除个数要设为0。


返回值: 被删除元素 组成的的数组


实例:

var arr = ["a","b","c"];

var insertArr = arr.splice(1,0,"2","3");

console.log(arr); // ["a","2","3","b","c"]


3. 替换数组

在指定位置插入值,同时删除任意数量项。


语法:

arrayObject(开始下标,删除个数,插入项1,...插入项n)


返回值: 被删除元素 组成的的数组


实例:

var arr = ["a","b","c"];

var insertArr = arr.splice(1,2,"2","3");

console.log(arr); // ["a","2","3"]


查找索引 (IE9+)

  1. indexOf( )

  2. lastIndexOf( )


indexOf( )

从数组开头查找,查询项第一次出现的下标


语法:

arrayObject.indexOf(查询项,开始下标)

参数:

查询项:(必需)
开始下标(可选)


返回值: 索引;没找到的话返回-1。 (number)

实例:

var nums = [1,2,3,4,5,2,8,2];
var times = nums.indexOf(2);
console.log(times); // 1

var times = nums.indexOf(2,3);
console.log(times); // 5


lastIndexOf( )

从数组末尾查找,查询项第一次出现的下标


语法:

arrayObject.indexOf(查询项,开始下标)

参数:

查询项:(必需)
开始下标(可选)


返回值: 索引;没找到的话返回-1。 (number)

实例:

var nums = [1,2,3,4,5,2,8,2];
var times = nums.lastIndexOf(2);
console.log(times); // 7


封装indexOf

function ArrIndexOf(arr,value,startIndex){
    if(startIndex){
        for(var i = startIndex; i < arr.length; i++){
            if(arr[i]==value){
                return i;
            }
        }
    }else{
        for(var i = 0; i < arr.length; i++){
            if(arr[i]===value){
                return i;
            }
        }
    }
    return -1;  
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值