Array构造器---Javascript

凡是通过Array构造函数创建的对象,都是数组

静态成员

● form方法:可以将一个伪数组,转换成真数组
● isArray方法:判断一个给定的数据,是否为一个真数组

    function test(){
    
    
            console.log(Array.isArray(arguments));//判断是否为数组 true
            var newArray = Array.from(arguments);
            console.log(newArray);//输出数组的形式
            console.log(newArray,Array.isArray(newArray));//转换后为true
        }
        test(1,23,4,5,12);

● of方法:类似于中括号创建数组,一次赋予数组每一项的值

        Array.of(1);         // [1]
        Array.of(1, 2, 3);   // [1, 2, 3]
        Array.of(undefined); // [undefined]

实例成员

● fill:用某个数据填充数组
● pop:从一个数组中删除并返回最后一个元素。
● push:方法向数组末尾添加新项目,并返回新长度。
● reverse:将当前数组颠倒顺序//arr.reverse();
● sort:排序

        var arr = [1, 2, 6, 5, 3];
        arr.sort();
        console.log(arr); //[1, 2, 3, 6];//排序,以个位数为准
        // 解决方法:
        var arr = [1, 21, 333, 25, 7];
        arr.sort(function (a, b) {
    
    
            return a - b;//升序, 若降序则b - a
        })
        console.log(arr);
        // 随机打算顺序(洗牌)
        arr.sort(function(a,b){
    
    
            return Math.random() - 0.5;
        });
        console.log(arr);

纯函数、无副作用函数:不会导致当前对象发生改变

● concat:用于合并两个或多个数组。此方法不会更改现有数组,而是返回一个新数

		var arr1 = [1,2,3];
        var arr2 = [4,5,6];
        var arr3 = [7,8,9];
        var newArry = arr1.concat(arr2,arr3);
        console.log(newArry);

includes:寻找数组中是否包含满足条件的元素

// includes()
        var arr = [32,45,12,76];
        // 从数组下标3的位置开始寻找,目标是67
        console.log(arr.includes(67,3));

join:将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串,如果数组只有一个项目,那么将返回该项目而不使用分隔符

 // join()
        var arr = ['abc', 'def','ghi'];
        console.log(arr.join());
        console.log(arr.join(''));
        console.log(arr.join('---'));

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

 /* slice(begin, end);
        / begin提取起始处的索引(从 0 开始),从该索引开始提取原数组元素
        / 提取终止处的索引(从 0 开始),在该索引处结束提取原数组元素。
          slice 会提取原数组中索引从 begin 到 end 的所有元素(包含 begin,但不包含 end)
        */
        var animls = ['ant', 'bot', 'ron', 'zin'];
        // 从索引0开始依次输出,到2索引结束,但不包含2
        console.log(animls.slice(0,2));//['ant','bot']
        // 从索引1开始依次输出,到2索引结束,但不包含2
        console.log(animls.slice(1,2));//['bot']
        // 从索引3开始依次输出
        console.log(animls.slice(3));
        // 从索引-1开始依次输出,即右边第一个
        console.log(animls.slice(-1));

forEach:遍历数组

		// 数组的遍历
        var arr = [12, 123, 52, 21, 2];
        arr.forEach(function (item, i, a) {
    
     //其中一项,下标,整个数组本身
            console.log(item, i, a);
        })

● some:是否至少有一个元素满足条件,返回一个布尔值
● every:是否所有一个元素满足条件,返回一个布尔值

var arr = [11,82,45,56,25,60,80,100];
        // 是否所有的同学都满足条件,满足为true,否则为false
        var result = arr.every(function(item){
    
    
            return item >= 60;
        });
        console.log(result);

        // 判断是否至少有一个同学及格
        console.log(arr.some(function(item){
    
    
            return item >= 60;
        }))

● filter:过滤、得到满足条件的元素组成的新数组

		var arr = [11, 82, 45, 56, 25];
        // 得到所有及格的分数线
        var newArr = arr.filter(function(item){
    
    
            return item >= 60;
        });
        console.log(newArr);

● find:查找第一个满足条件的元素、返回元素本身、如果没找到返回undefined
● findIndex:查找第一个满足条件的元素,返回该元素下标

var arr = [{
    
    name:"a",age:13,score:56},
           {
    
    name:"b",age:14,score:75}
          ]
  // 得到及格的学生,找到一个便返回
        var result = arr.find(function (item) {
    
    
            return item.score >= 60;
        })
        console.log(result);
  //findIndex() 找到满足条件的函数并返回索引,找不到则返回-1
        var result = arr.findIndex(function (item) {
    
    
            return item.score >= 60;
        })
        console.log("当前索引为:" + result);

● map 映射,将数组的每一项映射称为另外一项

var arr = [1, 21, 333, 25, 7];

       var newArr =  arr.map(function(item,i){
    
    
           return {
    
    
               name:"学生" + (i + 1),
               score:item
           }
       });
       console.log(newArr);

    //    得到一个学生的姓名数组
    newArr = newArr.map(function(item){
    
    
        return item.name;
    });
    console.log(newArr);

Guess you like

Origin blog.csdn.net/weixin_45090657/article/details/121254619