Javascript数组

一.数组创建方法

1.数组字面量

let arr = [1,2,3,,,5,6];

2.构造数组

new Array();
var arr = new Array(1, 2, 3, 4, 5);

3.二者区别

let arr = new Array(10)

//相当于建立长度为10的稀松数组

let arr1  = [10

//建立一个第一位为10的数组

二.数组的读和写

1.arr[num] //不可以溢出 结果是undefined

js数组是基于对象的

let arr = [ ] //建立镀锡

访问 arr[10] 出现undefined 不会出现报错

2.arr[num] = xxx //不会溢出写

可赋值arr[10] = 'abc' 

三.数组常用的方法

1.改变原数组

(1) push , pop ,shift, unshift,sort,reverse

push:在数组最后以为添加数据 可以同时添加多位

var arr = [ ];
//arr.push(10);

var arr = [ ];
//数组原型,push方法
Array.prototype.push = function(){
      for(var i = 0; i < arguments.length; i++){
            this[this.length]=arguments[i];
      }
      return this.length;
} 

pop:把数组最后一位剪切出去

var arr = [1,2,3];
arr.pop();
//变为arr = [1,2],pop传参无用,会自动忽略
var arr = [1,2,3];
var num = arr.pop();
//num = 3,把最后一位剪切出来

shift 把数组第一位剪切出去

unshift: 在数组前面添加数组 可以同时添加多位

var arr = [1,2,3];
arr.unshift(-1,0);
//arr.length = 5;
//arr = [-1,0,1,2,3]

sort 给原数组排序

例1:

var arr = [1,3,4,0,-1,9]
arr.sort();
//arr =[-1,0,1,3,4,9]

例2:

var arr = [1,3,5,4,10]
arr.sort();
//arr = [1,10,3,4,5];

由于排序不一定符合自己需求 所以sor留了个编程接口 填充自己的方法 按照自己想用的任何一种方法排序

方法:

1. 必须返回两个参数

2. 看返回值

当返回值为负数时 那么起那么的数放在前面

当返回值为正数时 那么后面的数在前面

为0 不动

(冒泡排序)

//升序
var arr = [1,3,5,4,10]
arr.sort(function(a,b){
    if(a>b){
         return 1;
    }else{
         return -1;
    }
});

等同于下方

//升序
var arr = [1,3,5,4,10]
arr.sort(function(a,b){
    return a-b;
//降序
var arr = [1,3,5,4,10]
arr.sort(function(a,b){
    return b-a;s

sort可用作乱序

var arr = [1,2,3,4,5,6,7]
arr.sort(function(){
    return Math.random()-0.5;//随机产生正负数
    //Math.random();产生(0,1)之间的随机数字
});
  • reverse:把原数组逆转
var arr = [1,2,3];
arr.reverse();
//arr = [3,2,1]

(2) splice 截取

splice(从第几位开始 截取多少的长度 在切口处添加新的数据)

var arr = [1,1,2,2,3,3];
arr.splice(1,2);
//返回值[1,2]
//arr = [1,2,3,3]
var arr = [1,1,2,2,3,3];
arr.splice(1,1,0,0,0);
//返回[1];
//arr = [1,0,0,0,2,2,3,3];

通常多用于,插进数据

var arr = [1,2,3,5];
arr.splice(3,0,4);
//arr = [1,2,3,4,5];

2.不改变原数组

concat, join->split, toString, slice

concat --> 拼接

不改变原数组 产生一个新数组

var arr = [1,2,3,4,5,6];
var arr1 = [7,8,9];
arr.concat(arr1);
//返回[1,2,3,4,5,6,7,8,9]
//不改变原数组,产生了一个新数组

join

参数一定要是字符串形式 然后这个字符串参数 会把数组里面每一位连接起来 并且返回字符串(不传参按逗号连接)

var arr = [1,2,3,4,5,6];
arr.join("-")
//arr = "1-2-3-4-5-6"

应用

var str = "alibaba";
var str1 = 'baidu';
var str2 = 'tencent';
var str3 = 'toutiao';
var str4 = 'wangyi';
var str5 = 'nv';
//散列结构,省去栈内存来回存取的步骤
var arr = [str, str1,str2,str3,str4,str5];
arr.join("");

split

与join可逆 是字符串的方法 不是数组 但与数组 可逆

var arr = [1,2,3,4,5,6];
var str = arr.join("-")
//str = "1-2-3-4-5-6"
str.split("4");
//str = ["1-2-3-","-5-6"]

toString: 将数组转换Wie字符串

splice: 截取

两个参数时

splice (从该位开始截取 截取到该位)

var arr = [1,2,3,4,5,6];
var newArr = arr.slice(1,3);
//newArr = [2,3],从第1位截取,到第3位,不改变原数组

一个参数时:

splice(从该位开始截取一直截取到最后)

var arr = [1,2,3,4,5,6];
var newArr = arr.slice(1);
//newArr = [2,3,4,5,6]

无参数时 整个截取
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值