JS数组。

一、什么是数组。

数组是一组数据的集合,其表现形式就是内存中的一段连续的内存地址。

二、JS中数组的特点。

1.定义时不需指定任何数据类型。

2.定义时不需指定数组长度。

3.可以存储任何数据类型的数据。

数组的创建。

1.隐式创建。

2.实例化创建。

3.创建数组并指定长度。

//方法一   隐式创建
var arr1 = [1,3,5,7,9];
//方法二  实例化创建
var arr2 = new Array(2,4,6,8,10);
//方法三  指定长度
var arr3 = new Array(3);//固定数组长度为3
arr3[0] = 1;
arr3[1] = 2;
arr3[2] = 3;

数组中的语法。

1.数组声明。

var arr=new Array();

2.数组赋值。

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

当有一个值时为数组长度,多个值时为赋值。

3.数组中的索引。

var arr2 = new Array();
    arr2[0] = 1;
    arr2[1] = "a";
    arr2[2] = true;
    arr2[3] = function () {
    
    
    }

    console.log(arr2);//0: 1  1: "a"  2: true  3: ƒ ()

索引从0开始,依次类推。

4.数组的遍历。

//方法一  for循环
  for (var i = 0; i < arr.length; i++) {
    
    
        console.log(arr[i]);
    }
//方法二  for  in
  for(var index in arr){
    
    
         console.log(arr.[index]);
   }
//方法三  forEach
  arr.forEach(function(value,index,arr){
    
    
    })

5.map映射。

将一个数组映射到另一个数组,映射后返回之后的集合。

var list = [1, 2, 3, 4, 5, 6];
var newlist = list.map(function (value, index) {
    
    
        return value * value
    });
    console.log(newlist);//[1,4,9,16,25,36]

6.累计器。

reduce方法。

    var num = [1, 2, 3, 4];
    var number = num.reduce(function (all, value) {
    
    
        return all * value;
    });
    console.log(number);//10

7.数组拼接。

concat方法。

    var a = [1, 2];
    var b = [3, 4];
    console.log(a.concat(b));//[1,2,3,4]

8.字符串转化为数组。

split方法。

    var str = "abcdef";
    var strarr = str.split("");
    console.log(strarr);//[a,b,c,d,e,f]

9.数组转化为字符串。

join方法。

    var str = "abcdef";
    var strarr = str.split("");
    console.log(strarr);
    console。log(starr。join(""))//abcdef
   

10.数组翻转。

reverse方法。

    var s = [1, 2, 3, 4];
    console.log(s.reverse());//[4,3,2,1]

例题:

将一串字符原位翻转。

    var ts = "Hello World !";
    var tstemp = ts.split(" ");
    console.log(tstemp);//["Hello", "World", "!"]

    var data = tstemp.map(function (value, index) {
    
    
        return value.split("").reverse().join("");
    });
    console.log(data);//["!","dlroW","olleH"]
  
    console.log(ts.split("").reverse().join("").split(" ").reverse());//["!","dlroW","olleH"]

11.数组自带的排序。

sort方法

    var f1 = [1, 5, 2, 3, 6, 4];
    console.log(f1.sort());//[1,2,3,4,5,6]

默认从小到大排序

12.数组追加方法。

push方法,往后追加。

unshift方法,往前追加。

13.数组的删除方法。

pop方法,删除后面的元素。

shift方法,删除前面的元素。

var f3 = [1, 2, 3];
console.log(f3.push(20);)//数组追加后的长度。  4
console.log(f3);//追加后的数组。[1,2,3,20]
console.log(f3.unshift(12));//5
console.log(f3);//[12,1,2,3,20]
console.log(f3.pop());//返回的是删除的那个元素  20
console.log(f3);//[12,1,2,3]
console.log(f3.shift());//12
console.log(f3);//[1,2,3]

14,检测数组中是否每一位都满足条件。

    var f3=[1,2,3]
    var has = f3.every(function (val, index) {
    
    
        return val % 2 == 0;
    }); //false

返回的是Boolean值。

15.根据条件过滤数组中的元素。

   var f3=[1,2,3];
   var has1 = f3.filter(function (value) {
    
    
        return value % 2 != 0;
    });
    console.log(has1);//[1,3]

16.查找满足条件的元素。

   var f3=[1,2,3];
   var has2 = f3.find(function (value) {
    
    
        return value > 2;
    });
    console.log(has2);//[3]

根据条件查找每一位元素,返回的是第一个满足条件的元素

17.查找数组中的值。

indexOf方法,从前往后找。

lastIndexOf方法,从后往前找。

    var f3=[1,2,3];
    console.log(f3.indexOf(4));//-1
    console.log(f3.lastIndexOf(1));//2

如果数组中有这个值返回索引,没有则返回-1。

18.检测对象是否为数组。

Array.isArray方法。

var f3=[1,2,3];
console.log(Array.isArray(f3));//true

返回的是Boolean值。

19.数组截取。

slice方法。

splice方法。

    var m1 = [1, 2, 3, 4];
    console.log(m1.slice(0, 3));//[1,2,3]
    console.log(m1);//[1,2,3,4]
    var m2=[1,2,3,4,5];
    console.log(m2.splice(0,3));//[1,2,3]
   console.log(m2);//[4,5]

第一个参数表示从哪个索引为开始截取,第二个参数表示截取几个长度。

slice截取之后元素不受影响。splice截取之后元素会受影响。

猜你喜欢

转载自blog.csdn.net/weixin_46953330/article/details/114836548